!function (t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.returnExports = e()
}(this, function () {
    var t, e, n = Array, r = n.prototype, i = Object, o = i.prototype, a = Function, s = a.prototype, u = String, c = u.prototype, h = Number, l = h.prototype, f = r.slice, p = r.splice, d = r.push, g = r.unshift, v = r.concat, m = r.join, y = s.call, b = s.apply, w = Math.max, E = Math.min, _ = o.toString, x = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag, T = Function.prototype.toString, $ = /^\s*class /, D = function (t) {
        try {
            var e = T.call(t), n = e.replace(/\/\/.*\n/g, ""), r = n.replace(/\/\*[.\s\S]*\*\//g, ""), i = r.replace(/\n/gm, " ").replace(/ {2}/g, " ");
            return $.test(i)
        } catch (o) {
            return !1
        }
    }, C = function (t) {
        try {
            return !D(t) && (T.call(t), !0)
        } catch (e) {
            return !1
        }
    }, A = "[object Function]", O = "[object GeneratorFunction]", t = function (t) {
        if (!t)return !1;
        if ("function" != typeof t && "object" != typeof t)return !1;
        if (x)return C(t);
        if (D(t))return !1;
        var e = _.call(t);
        return e === A || e === O
    }, k = RegExp.prototype.exec, N = function (t) {
        try {
            return k.call(t), !0
        } catch (e) {
            return !1
        }
    }, S = "[object RegExp]";
    e = function (t) {
        return "object" == typeof t && (x ? N(t) : _.call(t) === S)
    };
    var M, I = String.prototype.valueOf, L = function (t) {
        try {
            return I.call(t), !0
        } catch (e) {
            return !1
        }
    }, P = "[object String]";
    M = function (t) {
        return "string" == typeof t || "object" == typeof t && (x ? L(t) : _.call(t) === P)
    };
    var B = i.defineProperty && function () {
            try {
                var t = {};
                i.defineProperty(t, "x", {enumerable: !1, value: t});
                for (var e in t)return !1;
                return t.x === t
            } catch (n) {
                return !1
            }
        }(), R = function (t) {
        var e;
        return e = B ? function (t, e, n, r) {
                !r && e in t || i.defineProperty(t, e, {configurable: !0, enumerable: !1, writable: !0, value: n})
            } : function (t, e, n, r) {
                !r && e in t || (t[e] = n)
            }, function (n, r, i) {
            for (var o in r)t.call(r, o) && e(n, o, r[o], i)
        }
    }(o.hasOwnProperty), j = function (t) {
        var e = typeof t;
        return null === t || "object" !== e && "function" !== e
    }, U = h.isNaN || function (t) {
            return t !== t
        }, F = {
        ToInteger: function (t) {
            var e = +t;
            return U(e) ? e = 0 : 0 !== e && e !== 1 / 0 && e !== -(1 / 0) && (e = (e > 0 || -1) * Math.floor(Math.abs(e))), e
        }, ToPrimitive: function (e) {
            var n, r, i;
            if (j(e))return e;
            if (r = e.valueOf, t(r) && (n = r.call(e), j(n)))return n;
            if (i = e.toString, t(i) && (n = i.call(e), j(n)))return n;
            throw new TypeError
        }, ToObject: function (t) {
            if (null == t)throw new TypeError("can't convert " + t + " to object");
            return i(t)
        }, ToUint32: function (t) {
            return t >>> 0
        }
    }, H = function () {
    };
    R(s, {
        bind: function (e) {
            var n = this;
            if (!t(n))throw new TypeError("Function.prototype.bind called on incompatible " + n);
            for (var r, o = f.call(arguments, 1), s = function () {
                if (this instanceof r) {
                    var t = b.call(n, this, v.call(o, f.call(arguments)));
                    return i(t) === t ? t : this
                }
                return b.call(n, e, v.call(o, f.call(arguments)))
            }, u = w(0, n.length - o.length), c = [], h = 0; h < u; h++)d.call(c, "$" + h);
            return r = a("binder", "return function (" + m.call(c, ",") + "){ return binder.apply(this, arguments); }")(s), n.prototype && (H.prototype = n.prototype, r.prototype = new H, H.prototype = null), r
        }
    });
    var q = y.bind(o.hasOwnProperty), Q = y.bind(o.toString), G = y.bind(f), z = b.bind(f), J = y.bind(c.slice), K = y.bind(c.split), X = y.bind(c.indexOf), Y = y.bind(d), Z = y.bind(o.propertyIsEnumerable), V = y.bind(r.sort), W = n.isArray || function (t) {
            return "[object Array]" === Q(t)
        }, tt = 1 !== [].unshift(0);
    R(r, {
        unshift: function () {
            return g.apply(this, arguments), this.length
        }
    }, tt), R(n, {isArray: W});
    var et = i("a"), nt = "a" !== et[0] || !(0 in et), rt = function (t) {
        var e = !0, n = !0, r = !1;
        if (t)try {
            t.call("foo", function (t, n, r) {
                "object" != typeof r && (e = !1)
            }), t.call([1], function () {
                "use strict";
                n = "string" == typeof this
            }, "x")
        } catch (i) {
            r = !0
        }
        return !!t && !r && e && n
    };
    R(r, {
        forEach: function (e) {
            var n, r = F.ToObject(this), i = nt && M(this) ? K(this, "") : r, o = -1, a = F.ToUint32(i.length);
            if (arguments.length > 1 && (n = arguments[1]), !t(e))throw new TypeError("Array.prototype.forEach callback must be a function");
            for (; ++o < a;)o in i && ("undefined" == typeof n ? e(i[o], o, r) : e.call(n, i[o], o, r))
        }
    }, !rt(r.forEach)), R(r, {
        map: function (e) {
            var r, i = F.ToObject(this), o = nt && M(this) ? K(this, "") : i, a = F.ToUint32(o.length), s = n(a);
            if (arguments.length > 1 && (r = arguments[1]), !t(e))throw new TypeError("Array.prototype.map callback must be a function");
            for (var u = 0; u < a; u++)u in o && ("undefined" == typeof r ? s[u] = e(o[u], u, i) : s[u] = e.call(r, o[u], u, i));
            return s
        }
    }, !rt(r.map)), R(r, {
        filter: function (e) {
            var n, r, i = F.ToObject(this), o = nt && M(this) ? K(this, "") : i, a = F.ToUint32(o.length), s = [];
            if (arguments.length > 1 && (r = arguments[1]), !t(e))throw new TypeError("Array.prototype.filter callback must be a function");
            for (var u = 0; u < a; u++)u in o && (n = o[u], ("undefined" == typeof r ? e(n, u, i) : e.call(r, n, u, i)) && Y(s, n));
            return s
        }
    }, !rt(r.filter)), R(r, {
        every: function (e) {
            var n, r = F.ToObject(this), i = nt && M(this) ? K(this, "") : r, o = F.ToUint32(i.length);
            if (arguments.length > 1 && (n = arguments[1]), !t(e))throw new TypeError("Array.prototype.every callback must be a function");
            for (var a = 0; a < o; a++)if (a in i && !("undefined" == typeof n ? e(i[a], a, r) : e.call(n, i[a], a, r)))return !1;
            return !0
        }
    }, !rt(r.every)), R(r, {
        some: function (e) {
            var n, r = F.ToObject(this), i = nt && M(this) ? K(this, "") : r, o = F.ToUint32(i.length);
            if (arguments.length > 1 && (n = arguments[1]), !t(e))throw new TypeError("Array.prototype.some callback must be a function");
            for (var a = 0; a < o; a++)if (a in i && ("undefined" == typeof n ? e(i[a], a, r) : e.call(n, i[a], a, r)))return !0;
            return !1
        }
    }, !rt(r.some));
    var it = !1;
    r.reduce && (it = "object" == typeof r.reduce.call("es5", function (t, e, n, r) {
            return r
        })), R(r, {
        reduce: function (e) {
            var n = F.ToObject(this), r = nt && M(this) ? K(this, "") : n, i = F.ToUint32(r.length);
            if (!t(e))throw new TypeError("Array.prototype.reduce callback must be a function");
            if (0 === i && 1 === arguments.length)throw new TypeError("reduce of empty array with no initial value");
            var o, a = 0;
            if (arguments.length >= 2) o = arguments[1]; else for (; ;) {
                if (a in r) {
                    o = r[a++];
                    break
                }
                if (++a >= i)throw new TypeError("reduce of empty array with no initial value")
            }
            for (; a < i; a++)a in r && (o = e(o, r[a], a, n));
            return o
        }
    }, !it);
    var ot = !1;
    r.reduceRight && (ot = "object" == typeof r.reduceRight.call("es5", function (t, e, n, r) {
            return r
        })), R(r, {
        reduceRight: function (e) {
            var n = F.ToObject(this), r = nt && M(this) ? K(this, "") : n, i = F.ToUint32(r.length);
            if (!t(e))throw new TypeError("Array.prototype.reduceRight callback must be a function");
            if (0 === i && 1 === arguments.length)throw new TypeError("reduceRight of empty array with no initial value");
            var o, a = i - 1;
            if (arguments.length >= 2) o = arguments[1]; else for (; ;) {
                if (a in r) {
                    o = r[a--];
                    break
                }
                if (--a < 0)throw new TypeError("reduceRight of empty array with no initial value")
            }
            if (a < 0)return o;
            do a in r && (o = e(o, r[a], a, n)); while (a--);
            return o
        }
    }, !ot);
    var at = r.indexOf && [0, 1].indexOf(1, 2) !== -1;
    R(r, {
        indexOf: function (t) {
            var e = nt && M(this) ? K(this, "") : F.ToObject(this), n = F.ToUint32(e.length);
            if (0 === n)return -1;
            var r = 0;
            for (arguments.length > 1 && (r = F.ToInteger(arguments[1])), r = r >= 0 ? r : w(0, n + r); r < n; r++)if (r in e && e[r] === t)return r;
            return -1
        }
    }, at);
    var st = r.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;
    R(r, {
        lastIndexOf: function (t) {
            var e = nt && M(this) ? K(this, "") : F.ToObject(this), n = F.ToUint32(e.length);
            if (0 === n)return -1;
            var r = n - 1;
            for (arguments.length > 1 && (r = E(r, F.ToInteger(arguments[1]))), r = r >= 0 ? r : n - Math.abs(r); r >= 0; r--)if (r in e && t === e[r])return r;
            return -1
        }
    }, st);
    var ut = function () {
        var t = [1, 2], e = t.splice();
        return 2 === t.length && W(e) && 0 === e.length
    }();
    R(r, {
        splice: function (t, e) {
            return 0 === arguments.length ? [] : p.apply(this, arguments)
        }
    }, !ut);
    var ct = function () {
        var t = {};
        return r.splice.call(t, 0, 0, 1), 1 === t.length
    }();
    R(r, {
        splice: function (t, e) {
            if (0 === arguments.length)return [];
            var n = arguments;
            return this.length = w(F.ToInteger(this.length), 0), arguments.length > 0 && "number" != typeof e && (n = G(arguments), n.length < 2 ? Y(n, this.length - t) : n[1] = F.ToInteger(e)), p.apply(this, n)
        }
    }, !ct);
    var ht = function () {
        var t = new n(1e5);
        return t[8] = "x", t.splice(1, 1), 7 === t.indexOf("x")
    }(), lt = function () {
        var t = 256, e = [];
        return e[t] = "a", e.splice(t + 1, 0, "b"), "a" === e[t]
    }();
    R(r, {
        splice: function (t, e) {
            for (var n, r = F.ToObject(this), i = [], o = F.ToUint32(r.length), a = F.ToInteger(t), s = a < 0 ? w(o + a, 0) : E(a, o), c = E(w(F.ToInteger(e), 0), o - s), h = 0; h < c;)n = u(s + h), q(r, n) && (i[h] = r[n]), h += 1;
            var l, f = G(arguments, 2), p = f.length;
            if (p < c) {
                h = s;
                for (var d = o - c; h < d;)n = u(h + c), l = u(h + p), q(r, n) ? r[l] = r[n] : delete r[l], h += 1;
                h = o;
                for (var g = o - c + p; h > g;)delete r[h - 1], h -= 1
            } else if (p > c)for (h = o - c; h > s;)n = u(h + c - 1), l = u(h + p - 1), q(r, n) ? r[l] = r[n] : delete r[l], h -= 1;
            h = s;
            for (var v = 0; v < f.length; ++v)r[h] = f[v], h += 1;
            return r.length = o - c + p, i
        }
    }, !ht || !lt);
    var ft, pt = r.join;
    try {
        ft = "1,2,3" !== Array.prototype.join.call("123", ",")
    } catch (dt) {
        ft = !0
    }
    ft && R(r, {
        join: function (t) {
            var e = "undefined" == typeof t ? "," : t;
            return pt.call(M(this) ? K(this, "") : this, e)
        }
    }, ft);
    var gt = "1,2" !== [1, 2].join(void 0);
    gt && R(r, {
        join: function (t) {
            var e = "undefined" == typeof t ? "," : t;
            return pt.call(this, e)
        }
    }, gt);
    var vt = function (t) {
        for (var e = F.ToObject(this), n = F.ToUint32(e.length), r = 0; r < arguments.length;)e[n + r] = arguments[r], r += 1;
        return e.length = n + r, n + r
    }, mt = function () {
        var t = {}, e = Array.prototype.push.call(t, void 0);
        return 1 !== e || 1 !== t.length || "undefined" != typeof t[0] || !q(t, 0)
    }();
    R(r, {
        push: function (t) {
            return W(this) ? d.apply(this, arguments) : vt.apply(this, arguments)
        }
    }, mt);
    var yt = function () {
        var t = [], e = t.push(void 0);
        return 1 !== e || 1 !== t.length || "undefined" != typeof t[0] || !q(t, 0)
    }();
    R(r, {push: vt}, yt), R(r, {
        slice: function (t, e) {
            var n = M(this) ? K(this, "") : this;
            return z(n, arguments)
        }
    }, nt);
    var bt = function () {
        try {
            return [1, 2].sort(null), [1, 2].sort({}), !0
        } catch (t) {
        }
        return !1
    }(), wt = function () {
        try {
            return [1, 2].sort(/a/), !1
        } catch (t) {
        }
        return !0
    }(), Et = function () {
        try {
            return [1, 2].sort(void 0), !0
        } catch (t) {
        }
        return !1
    }();
    R(r, {
        sort: function (e) {
            if ("undefined" == typeof e)return V(this);
            if (!t(e))throw new TypeError("Array.prototype.sort callback must be a function");
            return V(this, e)
        }
    }, bt || !Et || !wt);
    var _t = !{toString: null}.propertyIsEnumerable("toString"), xt = function () {
    }.propertyIsEnumerable("prototype"), Tt = !q("x", "0"), $t = function (t) {
        var e = t.constructor;
        return e && e.prototype === t
    }, Dt = {
        $window: !0,
        $console: !0,
        $parent: !0,
        $self: !0,
        $frame: !0,
        $frames: !0,
        $frameElement: !0,
        $webkitIndexedDB: !0,
        $webkitStorageInfo: !0,
        $external: !0
    }, Ct = function () {
        if ("undefined" == typeof window)return !1;
        for (var t in window)try {
            !Dt["$" + t] && q(window, t) && null !== window[t] && "object" == typeof window[t] && $t(window[t])
        } catch (e) {
            return !0
        }
        return !1
    }(), At = function (t) {
        if ("undefined" == typeof window || !Ct)return $t(t);
        try {
            return $t(t)
        } catch (e) {
            return !1
        }
    }, Ot = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], kt = Ot.length, Nt = function (t) {
        return "[object Arguments]" === Q(t)
    }, St = function (e) {
        return null !== e && "object" == typeof e && "number" == typeof e.length && e.length >= 0 && !W(e) && t(e.callee)
    }, Mt = Nt(arguments) ? Nt : St;
    R(i, {
        keys: function (e) {
            var n = t(e), r = Mt(e), i = null !== e && "object" == typeof e, o = i && M(e);
            if (!i && !n && !r)throw new TypeError("Object.keys called on a non-object");
            var a = [], s = xt && n;
            if (o && Tt || r)for (var c = 0; c < e.length; ++c)Y(a, u(c));
            if (!r)for (var h in e)s && "prototype" === h || !q(e, h) || Y(a, u(h));
            if (_t)for (var l = At(e), f = 0; f < kt; f++) {
                var p = Ot[f];
                l && "constructor" === p || !q(e, p) || Y(a, p)
            }
            return a
        }
    });
    var It = i.keys && function () {
            return 2 === i.keys(arguments).length
        }(1, 2), Lt = i.keys && function () {
            var t = i.keys(arguments);
            return 1 !== arguments.length || 1 !== t.length || 1 !== t[0]
        }(1), Pt = i.keys;
    R(i, {
        keys: function (t) {
            return Pt(Mt(t) ? G(t) : t)
        }
    }, !It || Lt);
    var Bt, Rt, jt = 0 !== new Date((-0xc782b5b342b24)).getUTCMonth(), Ut = new Date((-0x55d318d56a724)), Ft = new Date(14496624e5), Ht = "Mon, 01 Jan -45875 11:59:59 GMT" !== Ut.toUTCString(), qt = Ut.getTimezoneOffset();
    qt < -720 ? (Bt = "Tue Jan 02 -45875" !== Ut.toDateString(), Rt = !/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(Ft.toString())) : (Bt = "Mon Jan 01 -45875" !== Ut.toDateString(), Rt = !/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/.test(Ft.toString()));
    var Qt = y.bind(Date.prototype.getFullYear), Gt = y.bind(Date.prototype.getMonth), zt = y.bind(Date.prototype.getDate), Jt = y.bind(Date.prototype.getUTCFullYear), Kt = y.bind(Date.prototype.getUTCMonth), Xt = y.bind(Date.prototype.getUTCDate), Yt = y.bind(Date.prototype.getUTCDay), Zt = y.bind(Date.prototype.getUTCHours), Vt = y.bind(Date.prototype.getUTCMinutes), Wt = y.bind(Date.prototype.getUTCSeconds), te = y.bind(Date.prototype.getUTCMilliseconds), ee = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], ne = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], re = function (t, e) {
        return zt(new Date(e, t, 0))
    };
    R(Date.prototype, {
        getFullYear: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Qt(this);
            return t < 0 && Gt(this) > 11 ? t + 1 : t
        }, getMonth: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Qt(this), e = Gt(this);
            return t < 0 && e > 11 ? 0 : e
        }, getDate: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Qt(this), e = Gt(this), n = zt(this);
            if (t < 0 && e > 11) {
                if (12 === e)return n;
                var r = re(0, t + 1);
                return r - n + 1
            }
            return n
        }, getUTCFullYear: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Jt(this);
            return t < 0 && Kt(this) > 11 ? t + 1 : t
        }, getUTCMonth: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Jt(this), e = Kt(this);
            return t < 0 && e > 11 ? 0 : e
        }, getUTCDate: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Jt(this), e = Kt(this), n = Xt(this);
            if (t < 0 && e > 11) {
                if (12 === e)return n;
                var r = re(0, t + 1);
                return r - n + 1
            }
            return n
        }
    }, jt), R(Date.prototype, {
        toUTCString: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = Yt(this), e = Xt(this), n = Kt(this), r = Jt(this), i = Zt(this), o = Vt(this), a = Wt(this);
            return ee[t] + ", " + (e < 10 ? "0" + e : e) + " " + ne[n] + " " + r + " " + (i < 10 ? "0" + i : i) + ":" + (o < 10 ? "0" + o : o) + ":" + (a < 10 ? "0" + a : a) + " GMT"
        }
    }, jt || Ht), R(Date.prototype, {
        toDateString: function () {
            if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
            var t = this.getDay(), e = this.getDate(), n = this.getMonth(), r = this.getFullYear();
            return ee[t] + " " + ne[n] + " " + (e < 10 ? "0" + e : e) + " " + r
        }
    }, jt || Bt), (jt || Rt) && (Date.prototype.toString = function () {
        if (!(this && this instanceof Date))throw new TypeError("this is not a Date object.");
        var t = this.getDay(), e = this.getDate(), n = this.getMonth(), r = this.getFullYear(), i = this.getHours(), o = this.getMinutes(), a = this.getSeconds(), s = this.getTimezoneOffset(), u = Math.floor(Math.abs(s) / 60), c = Math.floor(Math.abs(s) % 60);
        return ee[t] + " " + ne[n] + " " + (e < 10 ? "0" + e : e) + " " + r + " " + (i < 10 ? "0" + i : i) + ":" + (o < 10 ? "0" + o : o) + ":" + (a < 10 ? "0" + a : a) + " GMT" + (s > 0 ? "-" : "+") + (u < 10 ? "0" + u : u) + (c < 10 ? "0" + c : c)
    }, B && i.defineProperty(Date.prototype, "toString", {configurable: !0, enumerable: !1, writable: !0}));
    var ie = -621987552e5, oe = "-000001", ae = Date.prototype.toISOString && new Date(ie).toISOString().indexOf(oe) === -1, se = Date.prototype.toISOString && "1969-12-31T23:59:59.999Z" !== new Date((-1)).toISOString(), ue = y.bind(Date.prototype.getTime);
    R(Date.prototype, {
        toISOString: function () {
            if (!isFinite(this) || !isFinite(ue(this)))throw new RangeError("Date.prototype.toISOString called on non-finite value.");
            var t = Jt(this), e = Kt(this);
            t += Math.floor(e / 12), e = (e % 12 + 12) % 12;
            var n = [e + 1, Xt(this), Zt(this), Vt(this), Wt(this)];
            t = (t < 0 ? "-" : t > 9999 ? "+" : "") + J("00000" + Math.abs(t), 0 <= t && t <= 9999 ? -4 : -6);
            for (var r = 0; r < n.length; ++r)n[r] = J("00" + n[r], -2);
            return t + "-" + G(n, 0, 2).join("-") + "T" + G(n, 2).join(":") + "." + J("000" + te(this), -3) + "Z"
        }
    }, ae || se);
    var ce = function () {
        try {
            return Date.prototype.toJSON && null === new Date(NaN).toJSON() && new Date(ie).toJSON().indexOf(oe) !== -1 && Date.prototype.toJSON.call({
                    toISOString: function () {
                        return !0
                    }
                })
        } catch (t) {
            return !1
        }
    }();
    ce || (Date.prototype.toJSON = function (e) {
        var n = i(this), r = F.ToPrimitive(n);
        if ("number" == typeof r && !isFinite(r))return null;
        var o = n.toISOString;
        if (!t(o))throw new TypeError("toISOString property is not callable");
        return o.call(n)
    });
    var he = 1e15 === Date.parse("+033658-09-27T01:46:40.000Z"), le = !isNaN(Date.parse("2012-04-04T24:00:00.500Z")) || !isNaN(Date.parse("2012-11-31T23:59:59.000Z")) || !isNaN(Date.parse("2012-12-31T23:59:60.000Z")), fe = isNaN(Date.parse("2000-01-01T00:00:00.000Z"));
    if (fe || le || !he) {
        var pe = Math.pow(2, 31) - 1, de = U(new Date(1970, 0, 1, 0, 0, 0, pe + 1).getTime());
        Date = function (t) {
            var e = function (n, r, i, o, a, s, c) {
                var h, l = arguments.length;
                if (this instanceof t) {
                    var f = s, p = c;
                    if (de && l >= 7 && c > pe) {
                        var d = Math.floor(c / pe) * pe, g = Math.floor(d / 1e3);
                        f += g, p -= 1e3 * g
                    }
                    h = 1 === l && u(n) === n ? new t(e.parse(n)) : l >= 7 ? new t(n, r, i, o, a, f, p) : l >= 6 ? new t(n, r, i, o, a, f) : l >= 5 ? new t(n, r, i, o, a) : l >= 4 ? new t(n, r, i, o) : l >= 3 ? new t(n, r, i) : l >= 2 ? new t(n, r) : l >= 1 ? new t(n instanceof t ? +n : n) : new t
                } else h = t.apply(this, arguments);
                return j(h) || R(h, {constructor: e}, !0), h
            }, n = new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"), r = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365], i = function (t, e) {
                var n = e > 1 ? 1 : 0;
                return r[e] + Math.floor((t - 1969 + n) / 4) - Math.floor((t - 1901 + n) / 100) + Math.floor((t - 1601 + n) / 400) + 365 * (t - 1970)
            }, o = function (e) {
                var n = 0, r = e;
                if (de && r > pe) {
                    var i = Math.floor(r / pe) * pe, o = Math.floor(i / 1e3);
                    n += o, r -= 1e3 * o
                }
                return h(new t(1970, 0, 1, 0, 0, n, r))
            };
            for (var a in t)q(t, a) && (e[a] = t[a]);
            R(e, {now: t.now, UTC: t.UTC}, !0), e.prototype = t.prototype, R(e.prototype, {constructor: e}, !0);
            var s = function (e) {
                var r = n.exec(e);
                if (r) {
                    var a, s = h(r[1]), u = h(r[2] || 1) - 1, c = h(r[3] || 1) - 1, l = h(r[4] || 0), f = h(r[5] || 0), p = h(r[6] || 0), d = Math.floor(1e3 * h(r[7] || 0)), g = Boolean(r[4] && !r[8]), v = "-" === r[9] ? 1 : -1, m = h(r[10] || 0), y = h(r[11] || 0), b = f > 0 || p > 0 || d > 0;
                    return l < (b ? 24 : 25) && f < 60 && p < 60 && d < 1e3 && u > -1 && u < 12 && m < 24 && y < 60 && c > -1 && c < i(s, u + 1) - i(s, u) && (a = 60 * (24 * (i(s, u) + c) + l + m * v), a = 1e3 * (60 * (a + f + y * v) + p) + d, g && (a = o(a)), -864e13 <= a && a <= 864e13) ? a : NaN
                }
                return t.parse.apply(this, arguments)
            };
            return R(e, {parse: s}), e
        }(Date)
    }
    Date.now || (Date.now = function () {
        return (new Date).getTime()
    });
    var ge = l.toFixed && ("0.000" !== 8e-5.toFixed(3) || "1" !== .9.toFixed(0) || "1.25" !== 1.255.toFixed(2) || "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0)), ve = {
        base: 1e7,
        size: 6,
        data: [0, 0, 0, 0, 0, 0],
        multiply: function (t, e) {
            for (var n = -1, r = e; ++n < ve.size;)r += t * ve.data[n], ve.data[n] = r % ve.base, r = Math.floor(r / ve.base)
        },
        divide: function (t) {
            for (var e = ve.size, n = 0; --e >= 0;)n += ve.data[e], ve.data[e] = Math.floor(n / t), n = n % t * ve.base
        },
        numToString: function () {
            for (var t = ve.size, e = ""; --t >= 0;)if ("" !== e || 0 === t || 0 !== ve.data[t]) {
                var n = u(ve.data[t]);
                "" === e ? e = n : e += J("0000000", 0, 7 - n.length) + n
            }
            return e
        },
        pow: function Pe(t, e, n) {
            return 0 === e ? n : e % 2 === 1 ? Pe(t, e - 1, n * t) : Pe(t * t, e / 2, n)
        },
        log: function (t) {
            for (var e = 0, n = t; n >= 4096;)e += 12, n /= 4096;
            for (; n >= 2;)e += 1, n /= 2;
            return e
        }
    }, me = function (t) {
        var e, n, r, i, o, a, s, c;
        if (e = h(t), e = U(e) ? 0 : Math.floor(e), e < 0 || e > 20)throw new RangeError("Number.toFixed called with invalid number of decimals");
        if (n = h(this), U(n))return "NaN";
        if (n <= -1e21 || n >= 1e21)return u(n);
        if (r = "", n < 0 && (r = "-", n = -n), i = "0", n > 1e-21)if (o = ve.log(n * ve.pow(2, 69, 1)) - 69, a = o < 0 ? n * ve.pow(2, -o, 1) : n / ve.pow(2, o, 1), a *= 4503599627370496, o = 52 - o, o > 0) {
            for (ve.multiply(0, a), s = e; s >= 7;)ve.multiply(1e7, 0), s -= 7;
            for (ve.multiply(ve.pow(10, s, 1), 0), s = o - 1; s >= 23;)ve.divide(1 << 23), s -= 23;
            ve.divide(1 << s), ve.multiply(1, 1), ve.divide(2), i = ve.numToString()
        } else ve.multiply(0, a), ve.multiply(1 << -o, 0), i = ve.numToString() + J("0.00000000000000000000", 2, 2 + e);
        return e > 0 ? (c = i.length, i = c <= e ? r + J("0.0000000000000000000", 0, e - c + 2) + i : r + J(i, 0, c - e) + "." + J(i, c - e)) : i = r + i, i
    };
    R(l, {toFixed: me}, ge);
    var ye = function () {
        try {
            return "1" === 1..toPrecision(void 0)
        } catch (t) {
            return !0
        }
    }(), be = l.toPrecision;
    R(l, {
        toPrecision: function (t) {
            return "undefined" == typeof t ? be.call(this) : be.call(this, t)
        }
    }, ye), 2 !== "ab".split(/(?:ab)*/).length || 4 !== ".".split(/(.?)(.?)/).length || "t" === "tesst".split(/(s)*/)[1] || 4 !== "test".split(/(?:)/, -1).length || "".split(/.?/).length || ".".split(/()()/).length > 1 ? !function () {
            var t = "undefined" == typeof/()??/.exec("")[1], n = Math.pow(2, 32) - 1;
            c.split = function (r, i) {
                var o = String(this);
                if ("undefined" == typeof r && 0 === i)return [];
                if (!e(r))return K(this, r, i);
                var a, s, u, c, h = [], l = (r.ignoreCase ? "i" : "") + (r.multiline ? "m" : "") + (r.unicode ? "u" : "") + (r.sticky ? "y" : ""), f = 0, p = new RegExp(r.source, l + "g");
                t || (a = new RegExp("^" + p.source + "$(?!\\s)", l));
                var g = "undefined" == typeof i ? n : F.ToUint32(i);
                for (s = p.exec(o); s && (u = s.index + s[0].length, !(u > f && (Y(h, J(o, f, s.index)), !t && s.length > 1 && s[0].replace(a, function () {
                    for (var t = 1; t < arguments.length - 2; t++)"undefined" == typeof arguments[t] && (s[t] = void 0)
                }), s.length > 1 && s.index < o.length && d.apply(h, G(s, 1)), c = s[0].length, f = u, h.length >= g)));)p.lastIndex === s.index && p.lastIndex++, s = p.exec(o);
                return f === o.length ? !c && p.test("") || Y(h, "") : Y(h, J(o, f)), h.length > g ? G(h, 0, g) : h
            }
        }() : "0".split(void 0, 0).length && (c.split = function (t, e) {
            return "undefined" == typeof t && 0 === e ? [] : K(this, t, e)
        });
    var we = c.replace, Ee = function () {
        var t = [];
        return "x".replace(/x(.)?/g, function (e, n) {
            Y(t, n)
        }), 1 === t.length && "undefined" == typeof t[0]
    }();
    Ee || (c.replace = function (n, r) {
        var i = t(r), o = e(n) && /\)[*?]/.test(n.source);
        if (i && o) {
            var a = function (t) {
                var e = arguments.length, i = n.lastIndex;
                n.lastIndex = 0;
                var o = n.exec(t) || [];
                return n.lastIndex = i, Y(o, arguments[e - 2], arguments[e - 1]), r.apply(this, o)
            };
            return we.call(this, n, a)
        }
        return we.call(this, n, r)
    });
    var _e = c.substr, xe = "".substr && "b" !== "0b".substr(-1);
    R(c, {
        substr: function (t, e) {
            var n = t;
            return t < 0 && (n = w(this.length + t, 0)), _e.call(this, n, e)
        }
    }, xe);
    var Te = "\t\n\x0B\f\r   ᠎             　\u2028\u2029\ufeff", $e = "​", De = "[" + Te + "]", Ce = new RegExp("^" + De + De + "*"), Ae = new RegExp(De + De + "*$"), Oe = c.trim && (Te.trim() || !$e.trim());
    R(c, {
        trim: function () {
            if ("undefined" == typeof this || null === this)throw new TypeError("can't convert " + this + " to object");
            return u(this).replace(Ce, "").replace(Ae, "")
        }
    }, Oe);
    var ke = y.bind(String.prototype.trim), Ne = c.lastIndexOf && "abcあい".lastIndexOf("あい", 2) !== -1;
    R(c, {
        lastIndexOf: function (t) {
            if ("undefined" == typeof this || null === this)throw new TypeError("can't convert " + this + " to object");
            for (var e = u(this), n = u(t), r = arguments.length > 1 ? h(arguments[1]) : NaN, i = U(r) ? 1 / 0 : F.ToInteger(r), o = E(w(i, 0), e.length), a = n.length, s = o + a; s > 0;) {
                s = w(0, s - a);
                var c = X(J(e, s, o + a), n);
                if (c !== -1)return s + c
            }
            return -1
        }
    }, Ne);
    var Se = c.lastIndexOf;
    if (R(c, {
            lastIndexOf: function (t) {
                return Se.apply(this, arguments)
            }
        }, 1 !== c.lastIndexOf.length), 8 === parseInt(Te + "08") && 22 === parseInt(Te + "0x16") || (parseInt = function (t) {
            var e = /^[\-+]?0[xX]/;
            return function (n, r) {
                var i = ke(n), o = h(r) || (e.test(i) ? 16 : 10);
                return t(i, o)
            }
        }(parseInt)), 1 / parseFloat("-0") !== -(1 / 0) && (parseFloat = function (t) {
            return function (e) {
                var n = ke(e), r = t(n);
                return 0 === r && "-" === J(n, 0, 1) ? -0 : r
            }
        }(parseFloat)), "RangeError: test" !== String(new RangeError("test"))) {
        var Me = function () {
            if ("undefined" == typeof this || null === this)throw new TypeError("can't convert " + this + " to object");
            var t = this.name;
            "undefined" == typeof t ? t = "Error" : "string" != typeof t && (t = u(t));
            var e = this.message;
            return "undefined" == typeof e ? e = "" : "string" != typeof e && (e = u(e)), t ? e ? t + ": " + e : t : e
        };
        Error.prototype.toString = Me
    }
    if (B) {
        var Ie = function (t, e) {
            if (Z(t, e)) {
                var n = Object.getOwnPropertyDescriptor(t, e);
                n.configurable && (n.enumerable = !1, Object.defineProperty(t, e, n))
            }
        };
        Ie(Error.prototype, "message"), "" !== Error.prototype.message && (Error.prototype.message = ""), Ie(Error.prototype, "name")
    }
    if ("/a/gim" !== String(/a/gim)) {
        var Le = function () {
            var t = "/" + this.source + "/";
            return this.global && (t += "g"), this.ignoreCase && (t += "i"), this.multiline && (t += "m"), t
        };
        RegExp.prototype.toString = Le
    }
});
var QRCode;
!function () {
    function t(t) {
        this.mode = c.MODE_8BIT_BYTE, this.data = t, this.parsedData = [];
        for (var e = [], n = 0, r = this.data.length; n < r; n++) {
            var i = this.data.charCodeAt(n);
            i > 65536 ? (e[0] = 240 | (1835008 & i) >>> 18, e[1] = 128 | (258048 & i) >>> 12, e[2] = 128 | (4032 & i) >>> 6, e[3] = 128 | 63 & i) : i > 2048 ? (e[0] = 224 | (61440 & i) >>> 12, e[1] = 128 | (4032 & i) >>> 6, e[2] = 128 | 63 & i) : i > 128 ? (e[0] = 192 | (1984 & i) >>> 6, e[1] = 128 | 63 & i) : e[0] = i, this.parsedData = this.parsedData.concat(e)
        }
        this.parsedData.length != this.data.length && (this.parsedData.unshift(191), this.parsedData.unshift(187), this.parsedData.unshift(239))
    }

    function e(t, e) {
        this.typeNumber = t, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.dataList = []
    }

    function n(t, e) {
        if (void 0 == t.length)throw new Error(t.length + "/" + e);
        for (var n = 0; n < t.length && 0 == t[n];)n++;
        this.num = new Array(t.length - n + e);
        for (var r = 0; r < t.length - n; r++)this.num[r] = t[r + n]
    }

    function r(t, e) {
        this.totalCount = t, this.dataCount = e
    }

    function i() {
        this.buffer = [], this.length = 0
    }

    function o() {
        return "undefined" != typeof CanvasRenderingContext2D
    }

    function a() {
        var t = !1, e = navigator.userAgent;
        return /android/i.test(e) && (t = !0, aMat = e.toString().match(/android ([0-9]\.[0-9])/i), aMat && aMat[1] && (t = parseFloat(aMat[1]))), t
    }

    function s(t, e) {
        for (var n = 1, r = u(t), i = 0, o = g.length; i <= o; i++) {
            var a = 0;
            switch (e) {
                case h.L:
                    a = g[i][0];
                    break;
                case h.M:
                    a = g[i][1];
                    break;
                case h.Q:
                    a = g[i][2];
                    break;
                case h.H:
                    a = g[i][3]
            }
            if (r <= a)break;
            n++
        }
        if (n > g.length)throw new Error("Too long data");
        return n
    }

    function u(t) {
        var e = encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g, "a");
        return e.length + (e.length != t ? 3 : 0)
    }

    t.prototype = {
        getLength: function (t) {
            return this.parsedData.length
        }, write: function (t) {
            for (var e = 0, n = this.parsedData.length; e < n; e++)t.put(this.parsedData[e], 8)
        }
    }, e.prototype = {
        addData: function (e) {
            var n = new t(e);
            this.dataList.push(n), this.dataCache = null
        }, isDark: function (t, e) {
            if (t < 0 || this.moduleCount <= t || e < 0 || this.moduleCount <= e)throw new Error(t + "," + e);
            return this.modules[t][e]
        }, getModuleCount: function () {
            return this.moduleCount
        }, make: function () {
            this.makeImpl(!1, this.getBestMaskPattern())
        }, makeImpl: function (t, n) {
            this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
            for (var r = 0; r < this.moduleCount; r++) {
                this.modules[r] = new Array(this.moduleCount);
                for (var i = 0; i < this.moduleCount; i++)this.modules[r][i] = null
            }
            this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(t, n), this.typeNumber >= 7 && this.setupTypeNumber(t), null == this.dataCache && (this.dataCache = e.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)), this.mapData(this.dataCache, n)
        }, setupPositionProbePattern: function (t, e) {
            for (var n = -1; n <= 7; n++)if (!(t + n <= -1 || this.moduleCount <= t + n))for (var r = -1; r <= 7; r++)e + r <= -1 || this.moduleCount <= e + r || (0 <= n && n <= 6 && (0 == r || 6 == r) || 0 <= r && r <= 6 && (0 == n || 6 == n) || 2 <= n && n <= 4 && 2 <= r && r <= 4 ? this.modules[t + n][e + r] = !0 : this.modules[t + n][e + r] = !1)
        }, getBestMaskPattern: function () {
            for (var t = 0, e = 0, n = 0; n < 8; n++) {
                this.makeImpl(!0, n);
                var r = f.getLostPoint(this);
                (0 == n || t > r) && (t = r, e = n)
            }
            return e
        }, createMovieClip: function (t, e, n) {
            var r = t.createEmptyMovieClip(e, n), i = 1;
            this.make();
            for (var o = 0; o < this.modules.length; o++)for (var a = o * i, s = 0; s < this.modules[o].length; s++) {
                var u = s * i, c = this.modules[o][s];
                c && (r.beginFill(0, 100), r.moveTo(u, a), r.lineTo(u + i, a), r.lineTo(u + i, a + i), r.lineTo(u, a + i), r.endFill())
            }
            return r
        }, setupTimingPattern: function () {
            for (var t = 8; t < this.moduleCount - 8; t++)null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0);
            for (var e = 8; e < this.moduleCount - 8; e++)null == this.modules[6][e] && (this.modules[6][e] = e % 2 == 0)
        }, setupPositionAdjustPattern: function () {
            for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)for (var n = 0; n < t.length; n++) {
                var r = t[e], i = t[n];
                if (null == this.modules[r][i])for (var o = -2; o <= 2; o++)for (var a = -2; a <= 2; a++)o == -2 || 2 == o || a == -2 || 2 == a || 0 == o && 0 == a ? this.modules[r + o][i + a] = !0 : this.modules[r + o][i + a] = !1
            }
        }, setupTypeNumber: function (t) {
            for (var e = f.getBCHTypeNumber(this.typeNumber), n = 0; n < 18; n++) {
                var r = !t && 1 == (e >> n & 1);
                this.modules[Math.floor(n / 3)][n % 3 + this.moduleCount - 8 - 3] = r
            }
            for (var n = 0; n < 18; n++) {
                var r = !t && 1 == (e >> n & 1);
                this.modules[n % 3 + this.moduleCount - 8 - 3][Math.floor(n / 3)] = r
            }
        }, setupTypeInfo: function (t, e) {
            for (var n = this.errorCorrectLevel << 3 | e, r = f.getBCHTypeInfo(n), i = 0; i < 15; i++) {
                var o = !t && 1 == (r >> i & 1);
                i < 6 ? this.modules[i][8] = o : i < 8 ? this.modules[i + 1][8] = o : this.modules[this.moduleCount - 15 + i][8] = o
            }
            for (var i = 0; i < 15; i++) {
                var o = !t && 1 == (r >> i & 1);
                i < 8 ? this.modules[8][this.moduleCount - i - 1] = o : i < 9 ? this.modules[8][15 - i - 1 + 1] = o : this.modules[8][15 - i - 1] = o
            }
            this.modules[this.moduleCount - 8][8] = !t
        }, mapData: function (t, e) {
            for (var n = -1, r = this.moduleCount - 1, i = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)for (6 == a && a--; ;) {
                for (var s = 0; s < 2; s++)if (null == this.modules[r][a - s]) {
                    var u = !1;
                    o < t.length && (u = 1 == (t[o] >>> i & 1));
                    var c = f.getMask(e, r, a - s);
                    c && (u = !u), this.modules[r][a - s] = u, i--, i == -1 && (o++, i = 7)
                }
                if (r += n, r < 0 || this.moduleCount <= r) {
                    r -= n, n = -n;
                    break
                }
            }
        }
    }, e.PAD0 = 236, e.PAD1 = 17, e.createData = function (t, n, o) {
        for (var a = r.getRSBlocks(t, n), s = new i, u = 0; u < o.length; u++) {
            var c = o[u];
            s.put(c.mode, 4), s.put(c.getLength(), f.getLengthInBits(c.mode, t)), c.write(s)
        }
        for (var h = 0, u = 0; u < a.length; u++)h += a[u].dataCount;
        if (s.getLengthInBits() > 8 * h)throw new Error("code length overflow. (" + s.getLengthInBits() + ">" + 8 * h + ")");
        for (s.getLengthInBits() + 4 <= 8 * h && s.put(0, 4); s.getLengthInBits() % 8 != 0;)s.putBit(!1);
        for (; ;) {
            if (s.getLengthInBits() >= 8 * h)break;
            if (s.put(e.PAD0, 8), s.getLengthInBits() >= 8 * h)break;
            s.put(e.PAD1, 8)
        }
        return e.createBytes(s, a)
    }, e.createBytes = function (t, e) {
        for (var r = 0, i = 0, o = 0, a = new Array(e.length), s = new Array(e.length), u = 0; u < e.length; u++) {
            var c = e[u].dataCount, h = e[u].totalCount - c;
            i = Math.max(i, c), o = Math.max(o, h), a[u] = new Array(c);
            for (var l = 0; l < a[u].length; l++)a[u][l] = 255 & t.buffer[l + r];
            r += c;
            var p = f.getErrorCorrectPolynomial(h), d = new n(a[u], p.getLength() - 1), g = d.mod(p);
            s[u] = new Array(p.getLength() - 1);
            for (var l = 0; l < s[u].length; l++) {
                var v = l + g.getLength() - s[u].length;
                s[u][l] = v >= 0 ? g.get(v) : 0
            }
        }
        for (var m = 0, l = 0; l < e.length; l++)m += e[l].totalCount;
        for (var y = new Array(m), b = 0, l = 0; l < i; l++)for (var u = 0; u < e.length; u++)l < a[u].length && (y[b++] = a[u][l]);
        for (var l = 0; l < o; l++)for (var u = 0; u < e.length; u++)l < s[u].length && (y[b++] = s[u][l]);
        return y
    };
    for (var c = {MODE_NUMBER: 1, MODE_ALPHA_NUM: 2, MODE_8BIT_BYTE: 4, MODE_KANJI: 8}, h = {
        L: 1,
        M: 0,
        Q: 3,
        H: 2
    }, l = {
        PATTERN000: 0,
        PATTERN001: 1,
        PATTERN010: 2,
        PATTERN011: 3,
        PATTERN100: 4,
        PATTERN101: 5,
        PATTERN110: 6,
        PATTERN111: 7
    }, f = {
        PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
        G15: 1335,
        G18: 7973,
        G15_MASK: 21522,
        getBCHTypeInfo: function (t) {
            for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;)e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
            return (t << 10 | e) ^ f.G15_MASK
        },
        getBCHTypeNumber: function (t) {
            for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;)e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
            return t << 12 | e
        },
        getBCHDigit: function (t) {
            for (var e = 0; 0 != t;)e++, t >>>= 1;
            return e
        },
        getPatternPosition: function (t) {
            return f.PATTERN_POSITION_TABLE[t - 1]
        },
        getMask: function (t, e, n) {
            switch (t) {
                case l.PATTERN000:
                    return (e + n) % 2 == 0;
                case l.PATTERN001:
                    return e % 2 == 0;
                case l.PATTERN010:
                    return n % 3 == 0;
                case l.PATTERN011:
                    return (e + n) % 3 == 0;
                case l.PATTERN100:
                    return (Math.floor(e / 2) + Math.floor(n / 3)) % 2 == 0;
                case l.PATTERN101:
                    return e * n % 2 + e * n % 3 == 0;
                case l.PATTERN110:
                    return (e * n % 2 + e * n % 3) % 2 == 0;
                case l.PATTERN111:
                    return (e * n % 3 + (e + n) % 2) % 2 == 0;
                default:
                    throw new Error("bad maskPattern:" + t)
            }
        },
        getErrorCorrectPolynomial: function (t) {
            for (var e = new n([1], 0), r = 0; r < t; r++)e = e.multiply(new n([1, p.gexp(r)], 0));
            return e
        },
        getLengthInBits: function (t, e) {
            if (1 <= e && e < 10)switch (t) {
                case c.MODE_NUMBER:
                    return 10;
                case c.MODE_ALPHA_NUM:
                    return 9;
                case c.MODE_8BIT_BYTE:
                    return 8;
                case c.MODE_KANJI:
                    return 8;
                default:
                    throw new Error("mode:" + t)
            } else if (e < 27)switch (t) {
                case c.MODE_NUMBER:
                    return 12;
                case c.MODE_ALPHA_NUM:
                    return 11;
                case c.MODE_8BIT_BYTE:
                    return 16;
                case c.MODE_KANJI:
                    return 10;
                default:
                    throw new Error("mode:" + t)
            } else {
                if (!(e < 41))throw new Error("type:" + e);
                switch (t) {
                    case c.MODE_NUMBER:
                        return 14;
                    case c.MODE_ALPHA_NUM:
                        return 13;
                    case c.MODE_8BIT_BYTE:
                        return 16;
                    case c.MODE_KANJI:
                        return 12;
                    default:
                        throw new Error("mode:" + t)
                }
            }
        },
        getLostPoint: function (t) {
            for (var e = t.getModuleCount(), n = 0, r = 0; r < e; r++)for (var i = 0; i < e; i++) {
                for (var o = 0, a = t.isDark(r, i), s = -1; s <= 1; s++)if (!(r + s < 0 || e <= r + s))for (var u = -1; u <= 1; u++)i + u < 0 || e <= i + u || 0 == s && 0 == u || a == t.isDark(r + s, i + u) && o++;
                o > 5 && (n += 3 + o - 5)
            }
            for (var r = 0; r < e - 1; r++)for (var i = 0; i < e - 1; i++) {
                var c = 0;
                t.isDark(r, i) && c++, t.isDark(r + 1, i) && c++, t.isDark(r, i + 1) && c++, t.isDark(r + 1, i + 1) && c++, 0 != c && 4 != c || (n += 3)
            }
            for (var r = 0; r < e; r++)for (var i = 0; i < e - 6; i++)t.isDark(r, i) && !t.isDark(r, i + 1) && t.isDark(r, i + 2) && t.isDark(r, i + 3) && t.isDark(r, i + 4) && !t.isDark(r, i + 5) && t.isDark(r, i + 6) && (n += 40);
            for (var i = 0; i < e; i++)for (var r = 0; r < e - 6; r++)t.isDark(r, i) && !t.isDark(r + 1, i) && t.isDark(r + 2, i) && t.isDark(r + 3, i) && t.isDark(r + 4, i) && !t.isDark(r + 5, i) && t.isDark(r + 6, i) && (n += 40);
            for (var h = 0, i = 0; i < e; i++)for (var r = 0; r < e; r++)t.isDark(r, i) && h++;
            var l = Math.abs(100 * h / e / e - 50) / 5;
            return n += 10 * l
        }
    }, p = {
        glog: function (t) {
            if (t < 1)throw new Error("glog(" + t + ")");
            return p.LOG_TABLE[t]
        }, gexp: function (t) {
            for (; t < 0;)t += 255;
            for (; t >= 256;)t -= 255;
            return p.EXP_TABLE[t]
        }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
    }, d = 0; d < 8; d++)p.EXP_TABLE[d] = 1 << d;
    for (var d = 8; d < 256; d++)p.EXP_TABLE[d] = p.EXP_TABLE[d - 4] ^ p.EXP_TABLE[d - 5] ^ p.EXP_TABLE[d - 6] ^ p.EXP_TABLE[d - 8];
    for (var d = 0; d < 255; d++)p.LOG_TABLE[p.EXP_TABLE[d]] = d;
    n.prototype = {
        get: function (t) {
            return this.num[t]
        }, getLength: function () {
            return this.num.length
        }, multiply: function (t) {
            for (var e = new Array(this.getLength() + t.getLength() - 1), r = 0; r < this.getLength(); r++)for (var i = 0; i < t.getLength(); i++)e[r + i] ^= p.gexp(p.glog(this.get(r)) + p.glog(t.get(i)));
            return new n(e, 0)
        }, mod: function (t) {
            if (this.getLength() - t.getLength() < 0)return this;
            for (var e = p.glog(this.get(0)) - p.glog(t.get(0)), r = new Array(this.getLength()), i = 0; i < this.getLength(); i++)r[i] = this.get(i);
            for (var i = 0; i < t.getLength(); i++)r[i] ^= p.gexp(p.glog(t.get(i)) + e);
            return new n(r, 0).mod(t)
        }
    }, r.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], r.getRSBlocks = function (t, e) {
        var n = r.getRsBlockTable(t, e);
        if (void 0 == n)throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + e);
        for (var i = n.length / 3, o = [], a = 0; a < i; a++)for (var s = n[3 * a + 0], u = n[3 * a + 1], c = n[3 * a + 2], h = 0; h < s; h++)o.push(new r(u, c));
        return o
    }, r.getRsBlockTable = function (t, e) {
        switch (e) {
            case h.L:
                return r.RS_BLOCK_TABLE[4 * (t - 1) + 0];
            case h.M:
                return r.RS_BLOCK_TABLE[4 * (t - 1) + 1];
            case h.Q:
                return r.RS_BLOCK_TABLE[4 * (t - 1) + 2];
            case h.H:
                return r.RS_BLOCK_TABLE[4 * (t - 1) + 3];
            default:
                return
        }
    }, i.prototype = {
        get: function (t) {
            var e = Math.floor(t / 8);
            return 1 == (this.buffer[e] >>> 7 - t % 8 & 1)
        }, put: function (t, e) {
            for (var n = 0; n < e; n++)this.putBit(1 == (t >>> e - n - 1 & 1))
        }, getLengthInBits: function () {
            return this.length
        }, putBit: function (t) {
            var e = Math.floor(this.length / 8);
            this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
        }
    };
    var g = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]], v = function () {
        var t = function (t, e) {
            this._el = t, this._htOption = e
        };
        return t.prototype.draw = function (t) {
            function e(t, e) {
                var n = document.createElementNS("http://www.w3.org/2000/svg", t);
                for (var r in e)e.hasOwnProperty(r) && n.setAttribute(r, e[r]);
                return n
            }

            var n = this._htOption, r = this._el, i = t.getModuleCount();
            Math.floor(n.width / i), Math.floor(n.height / i);
            this.clear();
            var o = e("svg", {
                viewBox: "0 0 " + String(i) + " " + String(i),
                width: "100%",
                height: "100%",
                fill: n.colorLight
            });
            o.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"), r.appendChild(o), o.appendChild(e("rect", {
                fill: n.colorDark,
                width: "1",
                height: "1",
                id: "template"
            }));
            for (var a = 0; a < i; a++)for (var s = 0; s < i; s++)if (t.isDark(a, s)) {
                var u = e("use", {x: String(a), y: String(s)});
                u.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template"), o.appendChild(u)
            }
        }, t.prototype.clear = function () {
            for (; this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)
        }, t
    }(), m = "svg" === document.documentElement.tagName.toLowerCase(), y = m ? v : o() ? function () {
                function t() {
                    this._elImage.src = this._elCanvas.toDataURL("image/png"), this._elImage.style.display = "block", this._elCanvas.style.display = "none"
                }

                function e(t, e) {
                    var n = this;
                    if (n._fFail = e, n._fSuccess = t, null === n._bSupportDataURI) {
                        var r = document.createElement("img"), i = function () {
                            n._bSupportDataURI = !1, n._fFail && _fFail.call(n)
                        }, o = function () {
                            n._bSupportDataURI = !0, n._fSuccess && n._fSuccess.call(n)
                        };
                        return r.onabort = i, r.onerror = i, r.onload = o, void(r.src = "")
                    }
                    n._bSupportDataURI === !0 && n._fSuccess ? n._fSuccess.call(n) : n._bSupportDataURI === !1 && n._fFail && n._fFail.call(n)
                }

                if (this._android && this._android <= 2.1) {
                    var n = 1 / window.devicePixelRatio, r = CanvasRenderingContext2D.prototype.drawImage;
                    CanvasRenderingContext2D.prototype.drawImage = function (t, e, i, o, a, s, u, c, h) {
                        if ("nodeName" in t && /img/i.test(t.nodeName))for (var l = arguments.length - 1; l >= 1; l--)arguments[l] = arguments[l] * n; else"undefined" == typeof c && (arguments[1] *= n, arguments[2] *= n, arguments[3] *= n, arguments[4] *= n);
                        r.apply(this, arguments)
                    }
                }
                var i = function (t, e) {
                    this._bIsPainted = !1, this._android = a(), this._htOption = e, this._elCanvas = document.createElement("canvas"), this._elCanvas.width = e.width, this._elCanvas.height = e.height, t.appendChild(this._elCanvas), this._el = t, this._oContext = this._elCanvas.getContext("2d"), this._bIsPainted = !1, this._elImage = document.createElement("img"), this._elImage.style.display = "none", this._el.appendChild(this._elImage), this._bSupportDataURI = null
                };
                return i.prototype.draw = function (t) {
                    var e = this._elImage, n = this._oContext, r = this._htOption, i = t.getModuleCount(), o = r.width / i, a = r.height / i, s = Math.round(o), u = Math.round(a);
                    e.style.display = "none", this.clear();
                    for (var c = 0; c < i; c++)for (var h = 0; h < i; h++) {
                        var l = t.isDark(c, h), f = h * o, p = c * a;
                        n.strokeStyle = l ? r.colorDark : r.colorLight, n.lineWidth = 1, n.fillStyle = l ? r.colorDark : r.colorLight, n.fillRect(f, p, o, a), n.strokeRect(Math.floor(f) + .5, Math.floor(p) + .5, s, u), n.strokeRect(Math.ceil(f) - .5, Math.ceil(p) - .5, s, u)
                    }
                    this._bIsPainted = !0
                }, i.prototype.makeImage = function () {
                    this._bIsPainted && e.call(this, t)
                }, i.prototype.isPainted = function () {
                    return this._bIsPainted
                }, i.prototype.clear = function () {
                    this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height), this._bIsPainted = !1
                }, i.prototype.round = function (t) {
                    return t ? Math.floor(1e3 * t) / 1e3 : t
                }, i
            }() : function () {
                var t = function (t, e) {
                    this._el = t, this._htOption = e
                };
                return t.prototype.draw = function (t) {
                    for (var e = this._htOption, n = this._el, r = t.getModuleCount(), i = Math.floor(e.width / r), o = Math.floor(e.height / r), a = ['<table style="border:0;border-collapse:collapse;">'], s = 0; s < r; s++) {
                        a.push("<tr>");
                        for (var u = 0; u < r; u++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + i + "px;height:" + o + "px;background-color:" + (t.isDark(s, u) ? e.colorDark : e.colorLight) + ';"></td>');
                        a.push("</tr>")
                    }
                    a.push("</table>"), n.innerHTML = a.join(""), e.center && setTimeout(function () {
                        var t = n.childNodes[0], r = (e.width - t.offsetWidth) / 2, i = (e.height - t.offsetHeight) / 2;
                        r > 0 && i > 0 && (t.style.margin = i + "px " + r + "px")
                    }, 100)
                }, t.prototype.clear = function () {
                    this._el.innerHTML = ""
                }, t
            }();
    QRCode = function (t, e) {
        if (this._htOption = {
                width: 140,
                height: 140,
                typeNumber: 4,
                colorDark: "#000000",
                colorLight: "#ffffff",
                correctLevel: h.H,
                ico_url: "",
                center: !0,
                showTitle: !0
            }, "string" == typeof e && (e = {text: e}), e)for (var n in e)this._htOption[n] = e[n];
        "string" == typeof t && (t = document.getElementById(t)), !this._htOption.ico_url || this._htOption.correctLevel != h.L && this._htOption.correctLevel != h.M || (this._htOption.correctLevel = h.H), this._android = a(), this._el = t, this._oQRCode = null, this._oDrawing = new y(this._el, this._htOption), this._htOption.text && this.makeCode(this._htOption.text)
    }, QRCode.prototype.makeCode = function (t) {
        this._oQRCode = new e(s(t, this._htOption.correctLevel), this._htOption.correctLevel), this._oQRCode.addData(t), this._oQRCode.make(), this._htOption.showTitle && (this._el.title = t), this._oDrawing.draw(this._oQRCode), this.makeImage()
    }, QRCode.prototype.makeImage = function () {
        if ("function" == typeof this._oDrawing.makeImage && (!this._android || this._android >= 3) && this._oDrawing.makeImage(), this._htOption.ico_url) {
            var t = document.createElement("img"), e = .28 * this._htOption.height, n = .28 * this._htOption.width;
            this._el.style.position = "relative", t.style.cssText = "position:absolute; width:" + n + "px; height:" + e + "px; top:50%; left:50%; margin-top:-" + e / 2 + "px; margin-left:-" + n / 2 + "px;", t.src = this._htOption.ico_url, t.onerror = function () {
                t.src = "", t.style.display = "none"
            }, this._el.appendChild(t)
        }
    }, QRCode.prototype.clear = function () {
        this._oDrawing.clear()
    }, QRCode.CorrectLevel = h
}(), function (t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? exports.Reve = e() : t.Reve = e()
}(this, function () {
    return function (t) {
        function e(r) {
            if (n[r])return n[r].exports;
            var i = n[r] = {exports: {}, id: r, loaded: !1};
            return t[r].call(i.exports, i, i.exports, e), i.loaded = !0, i.exports
        }

        var n = {};
        return e.m = t, e.c = n, e.p = "", e(0)
    }([function (t, e, n) {
        "use strict";
        function r(t) {
            t = t || {};
            var e = this, n = m.namespace, r = t.ready, i = t.created, a = t.destroy, c = !v.hasOwn(t, "binding") || t.binding;
            this.$id = L++, this.$name = t.name || "", this.$parent = t.parent || null, this.$binding = !!c, this.$shouldUpdate = t.shouldUpdate, this.$directives = [], this.$components = [], this._$beforeDestroy = function () {
                o(m["catch"], a, e)
            };
            var d = t.el, g = !!v.hasOwn(t, "replace") && t.replace;
            if ("string" == v.type(d)) {
                var b = d;
                if (C ? d = document.querySelector(b) : /^\./.test(b) ? (d = p(b.replace(/^\./, "")), d && (d = d[0])) : d = /^#/.test(b) ? document.getElementById(b.replace(/^#/, "")) : null, !d)return w.error("Can't resolve element by \"" + b + '"')
            }
            var E = y.Element(d);
            if (E && t.template)if (v.hasAttribute(d, n + "notemplate") || t.notemplate); else if (g) {
                var _ = l(t.template), x = f(_);
                if (!x.length)throw new Error("Component with '" + n + "replace' must has a child element of template.", t.template);
                var T = x[0], $ = d.parentNode;
                $ && $.replaceChild(T, d), h(d, T), d = T
            } else y.Fragment(d) ? w.warn('Container element should\'nt a fragment node when "template" is given. Template:\n', t.template) : d.innerHTML = t.template; else if (!d && t.template) {
                if (g) {
                    var D = l(t.template);
                    d = f(D)[0], d || w.warn("Component's template should has a child element when using 'replace' option.", t.template)
                }
                d || (d = document.createElement("div"), d.innerHTML = t.template)
            } else {
                if (!E)throw new Error('illegal "el" option.');
                if (g) {
                    var x = y.Fragment(d) ? f(d) : d.children, A = x && x.length;
                    if (!A && w.warn('Component\'s container element should has children when "replace" option given.'), A) {
                        var O = d;
                        d = x[0], O.parentNode && O.parentNode.replaceChild(d, O)
                    }
                }
            }
            var k, N = n + "component";
            g && v.hasAttribute(d, N) && I(d, N) !== t.name ? k = !0 : (s(d, N), u(d, "_" + n + "cid", this.$id)), this.$methods = {}, this.$refs = {};
            var S = P(t.data), M = this._$parseProps(d), B = P(t._data);
            this.$data = v.extend(S, M, B), v.objEach(t.methods, function (t, n) {
                e.$methods[t] = e[t] = v.bind(n, e)
            }), o(m["catch"], i, e), this.$el = d;
            var R = this.$compile(d);
            k && (this.$el = R), o(m["catch"], r, e)
        }

        function i(t) {
            function e(e) {
                var o = P(t.data), a = v.extend({}, t, e);
                a.methods = v.extend({}, n, a.methods), a.data = v.extend({}, o, P(a.data)), this.$classid = i, r.call(this, a)
            }

            var n = t.methods, i = B++;
            return e.__id = i, v.inherit(e, r), e
        }

        function o(t, e, n) {
            if (e)if (t)try {
                e.call(n)
            } catch (r) {
                w.errorTrace(r)
            } else e.call(n)
        }

        function a(t, e, n) {
            if (!S(t))return {};
            t = t.replace(m.directiveSep_regexp, ",").replace(/,\s*}$/, "}");
            var r = A(e, t, n);
            return r[0] ? {} : r[1]
        }

        function s(t, e) {
            return t && t.removeAttribute(e)
        }

        function u(t, e, n) {
            return t && t.setAttribute && t.setAttribute(e, n)
        }

        function c(t, e) {
            if (S(t) && S(e)) {
                var n = m.directiveSep, r = M(e) + n + M(t), i = {};
                return v.forEach(r.split(n), function (t) {
                    if (t = v.trim(t)) {
                        var e, n;
                        n = t.replace(/^[^:]+\:/, function (t) {
                            return e = v.trim(t.replace(/:$/, "")), ""
                        }), e && (i[e] = n)
                    }
                }), T.wrapExpr(v.map(v.keys(i), function (t) {
                    return t + ":" + i[t]
                }).join(n))
            }
            return t
        }

        function h(t, e) {
            var n = v.slice(t.attributes), r = v.map(["data", "style", "methods", "attr", "on", "props"], function (t) {
                return m.namespace + t
            });
            return v.forEach(n, function (t) {
                var n = t.name, i = t.value;
                if ("function" != v.type(i) && (!/^on/.test(n) || "null" !== i))try {
                    if ("class" == n)return void(e.className = e.className + (e.className ? " " : "") + i);
                    v.some(r, function (t) {
                        return n === t
                    }) && (i = c(i, I(e, n))), e.setAttribute(n, i)
                } catch (o) {
                    w.warn("set attribute fail:" + o + ", name:" + n + ", value:" + i)
                }
            }), e
        }

        function l(t) {
            var e, n = /^\s*<(th|tr|td|thead|tbody)\b/i.exec(t), r = document.createDocumentFragment(), i = document.createElement("div");
            if (n)switch (n[1].toLowerCase()) {
                case"thead":
                case"tbody":
                    i.innerHTML = "<table>" + t + "</table>", e = i.childNodes[0].childNodes;
                    break;
                case"th":
                case"tr":
                    i.innerHTML = "<table><tbody>" + t + "</tbody></table>", e = i.childNodes[0].childNodes[0].childNodes;
                    break;
                case"td":
                    i.innerHTML = "<table><tbody><tr>" + t + "</tr></tbody></table>", e = i.childNodes[0].childNodes[0].childNodes[0].childNodes
            }
            for (e || (i.innerHTML = t, e = i.childNodes); e.length;)r.appendChild(e[0]);
            return r
        }

        function f(t) {
            var e = [];
            return v.forEach(t.childNodes, function (t) {
                1 === t.nodeType && e.push(t)
            }), e
        }

        function p(t) {
            if (document.getElementsByClassName)return document.getElementsByClassName(t);
            var e, n, r, i = document, o = [];
            if (i.querySelectorAll)return i.querySelectorAll("." + t);
            if (i.evaluate)for (n = ".//*[contains(concat(' ', @class, ' '), ' " + t + " ')]", e = i.evaluate(n, i, null, 0, null); r = e.iterateNext();)o.push(r); else for (e = i.getElementsByTagName("*"), n = new RegExp("(^|\\s)" + t + "(\\s|$)"), r = 0; r < e.length; r++)n.test(e[r].className) && o.push(e[r]);
            return o
        }

        function d() {
        }

        var g = n(1), v = n(2), m = n(5), y = n(4), b = n(6), w = n(7), E = n(8), _ = n(9), x = n(11), T = n(10), $ = n(12), D = n(3), C = D.supportQuerySelector, A = n(13), O = {}, k = {}, N = [], S = T.isExpr, M = T.strip, I = v.getAttribute, L = 0, P = function (t) {
            return ("function" == v.type(t) ? t() : t) || {}
        };
        r.prototype._$parseProps = function (t) {
            var e = m.namespace + "props", n = I(t || this.$el, e);
            return s(t || this.$el, e), n ? a(n, this, e) : null
        }, r.prototype.$set = function (t) {
            var e = "string" == v.type(t) ? t : "";
            e ? (t = arguments[1], E.set(this.$data, e, t)) : this.$data = v.extend(this.$data, t), this.$update()
        }, r.prototype.$root = function () {
            for (var t = this; t.$parent;)t = t.$parent;
            return t || null
        }, r.prototype.$compile = function (t, e) {
            function n(t, n, r) {
                if (!C || !~v.indexOf(D, t)) {
                    var o = t._diretives || [];
                    if (!o || !~v.indexOf(o, r)) {
                        var a = f[r], u = I(t, n) || "";
                        o.push(n), t._diretives = o, s(t, n);
                        var c = new $(h, t, a, n, u, e);
                        i.push(c)
                    }
                }
            }

            "string" == v.type(t) && (t = l(t));
            var r = m.namespace, i = e ? e.$directives : this.$directives, o = e ? e.$components : this.$components, c = r + "component", h = this, f = v.extend({}, _, x, k), p = v.keys(f), d = v.keys(x).concat(N), g = [c].concat(v.map(d, function (t) {
                return m.namespace + t
            })), y = b(t, g, v.map(p, function (t) {
                return m.namespace + t
            }));
            if (C) {
                var E = g, T = [];
                v.forEach(E, function (t) {
                    return v.forEach(E, function (e) {
                        T.push("[" + t + "] [" + e + "]")
                    })
                });
                var D = v.slice(t.querySelectorAll(T))
            }
            var A, S = y(v.map(d, function (t) {
                return "[" + m.namespace + t + "]"
            })), L = y(["[" + c + "]"]), P = function (t) {
                if (!(t._component || C && ~v.indexOf(D, t))) {
                    var e = I(t, c);
                    if (!e)return w.error(c + " missing component id.", t);
                    var n = O[e];
                    if (!n)return void w.error("Component '" + e + "' not found.");
                    if (n.__id === h.$classid)return void w.error("Component in circular instance.", t);
                    t._component = e;
                    var i = I(t, r + "ref"), l = I(t, r + "data"), f = I(t, r + "methods"), p = I(t, r + "binding"), d = I(t, r + "updateid") || "", g = I(t, r + "replace"), m = {}, y = {}, b = {};
                    g = !!v.hasAttribute(t, r + "replace") && ("true" == g || "1" == g), s(t, c), v.forEach(["ref", "data", "methods", "binding", "replace"], function (e) {
                        s(t, r + e)
                    }), l && (m = a(l, this, r + "data"), b = v.immutable(m)), f && (y = a(f, this, r + "methods"));
                    var E = h._$parseProps(t) || {}, _ = new n({
                        el: t,
                        _data: v.extend(E, m),
                        name: e,
                        parent: h,
                        methods: y,
                        binding: "false" !== p && "0" !== p,
                        replace: !!g
                    });
                    u(_.$el, "_" + r + "component", e), i && (this.$refs[i] = _), _.$updateId = d || "";
                    var x = _.$update;
                    return _.$componentShouldUpdate = function () {
                        var t = this.$shouldUpdate, e = a(l, h);
                        if (l && v.diff(b, e)) {
                            if (t && !t.call(_, e, b))return;
                            b = v.immutable(e), _.$data = v.extend(_.$data, e), x && x.apply(_, arguments)
                        }
                    }, o.push(_), _.$el
                }
            };
            return v.hasAttribute(t, c) && (A = P.call(this, t)), v.forEach(L, v.bind(P, this)), v.forEach(S, function (t) {
                v.some(d, function (e) {
                    var r = m.namespace + e;
                    if (v.hasAttribute(t, r))return n(t, r, e), !0
                })
            }), v.forEach(v.keys(f), function (n) {
                var o = f[n];
                n = r + n;
                var a = v.slice(y(["[" + n + "]"]));
                v.hasAttribute(t, n) && a.unshift(t), v.forEach(a, function (t) {
                    var r = t._diretives || [], a = I(t, n) || "";
                    if (!r || !~v.indexOf(r, n)) {
                        s(t, n), r.push(n), t._diretives = r;
                        var u, c = m.directiveSep;
                        o.multi && a.match(c) ? v.forEach(M(a).split(c), function (r) {
                                v.trim(r) && (u = new $(h, t, o, n, "{" + r + "}", e), i.push(u))
                            }) : (u = new $(h, t, o, n, a, e), i.push(u))
                    }
                })
            }), A || t
        }, r.prototype.$appendTo = function (t, e) {
            if (!t || !t.$el)throw new Error("Unvalid parent viewmodel instance.");
            this.$parent = t, e = e || function (t, e) {
                    e.appendChild(t)
                }, e.call(this, this.$el, t.$el)
        }, r.prototype.$update = function (t, e) {
            var n = this.$components, r = this.$directives;
            if (t && t.length) {
                var i = "array" == v.type(t), o = function (n) {
                    return function (r) {
                        i && !~t.indexOf(r.$updateId) || (i || r.$updateId === t) && ("function" == v.type(e) ? e.call(r, n, r.$updateId) && r.$update() : r.$update())
                    }
                };
                return v.forEach(n, o("component")), v.forEach(r, o("directive"))
            }
            v.forEach(n, function (t) {
                t.$binding && (t.$componentShouldUpdate ? t.$componentShouldUpdate() : t.$update())
            }), v.forEach(r, function (t) {
                t.$update()
            })
        }, r.prototype.$destroy = function () {
            this.$destroyed || (this._$beforeDestroy && this._$beforeDestroy(), v.forEach(this.$components, function (t) {
                t.$destroy()
            }), v.forEach(this.$directives, function (t) {
                t.$destroy()
            }), this.$el = this.$components = this.$directives = this.$data = this.$methods = this.$refs = null, this.$set = this.$update = this.$compile = this.$root = this.$appendTo = d, this.$destroyed = !0)
        };
        var B = 0;
        r.create = function (t) {
            return i(t)
        }, r.component = function (t, e) {
            var n = i(e);
            return O[t] = n, n
        }, r.directive = function (t, e) {
            e.scoped && N.push(t), k[t] = e
        }, r.set = function (t, e) {
            return m[t] = e, r
        }, r.$ = g, r.util = v, r.consoler = w, t.exports = r
    }, function (t, e, n) {
        "use strict";
        function r(t) {
            if ("string" == c.type(t))return i(c.copyArray(document.querySelectorAll(t)));
            if ("array" == c.type(t))return i(t);
            if (t instanceof i)return t;
            if (h.DOM(t))return i(new o(t));
            throw new Error("Unexpect selector !")
        }

        function i(t) {
            if (t instanceof i)return t;
            var e = new o;
            return c.forEach(t, function (t) {
                e.push(t)
            }), e
        }

        function o() {
            var t = c.slice(arguments), e = this;
            this.push = function (n) {
                t.push(n), e[t.length - 1] = n, e.length = t.length
            }, this.forEach = function (e) {
                c.forEach(t, e)
            }, this.forEach(function (t, n) {
                e[n] = t
            }), this.length = t.length
        }

        function a(t) {
            return t && t.parentNode
        }

        function s() {
            return document.createDocumentFragment()
        }

        function u(t, e) {
            return t.appendChild(e)
        }

        var c = n(2), h = n(4);
        o.prototype = i.prototype;
        var l = i.prototype;
        l.find = function (t) {
            var e = [];
            return this.forEach(function (n) {
                e = e.concat(c.copyArray(n.querySelectorAll(t)))
            }), i(e)
        }, l.attr = function (t, e) {
            var n = arguments.length, r = this[0];
            if (n > 1) r.setAttribute(t, e); else if (1 == n)return (r.getAttribute(t) || "").toString();
            return this
        }, l.removeAttr = function (t) {
            return this.forEach(function (e) {
                e.removeAttribute(t)
            }), this
        }, l.addClass = function (t) {
            return this.forEach(function (e) {
                var n = e.className.split(/\s+/);
                ~c.indexOf(n, t) || n.push(t), e.className = n.join(" ")
            }), this
        }, l.removeClass = function (t) {
            return this.forEach(function (e) {
                var n = e.className.split(" "), r = c.indexOf(n, t);
                ~r && n.splice(r, 1), e.className = n.join(" ")
            }), this
        }, l.hasClass = function (t) {
            if (!this[0])return !1;
            var e = this[0].className.split(" ");
            return !!~c.indexOf(e, t)
        }, l.each = function (t) {
            return this.forEach(t), this
        };
        var f = !document.addEventListener;
        l.on = function (t, e, n) {
            return this.forEach(function (r) {
                f ? r.attachEvent("on" + t, e) : r.addEventListener(t, e, n)
            }), this
        }, l.off = function (t, e, n) {
            return this.forEach(function (r) {
                f ? r.detachEvent("on" + t, e) : r.removeEventListener(t, e, n)
            }), this
        }, l.html = function (t) {
            var e = arguments.length;
            if (e >= 1) this.forEach(function (e) {
                e.innerHTML = t
            }); else if (this.length)return this[0].innerHTML;
            return this
        }, l.parent = function () {
            return this.length ? i([a(this[0])]) : null
        }, l.remove = function () {
            return this.forEach(function (t) {
                var e = a(t);
                e && e.removeChild(t)
            }), this
        }, l.insertBefore = function (t) {
            var e;
            return this.length ? (1 == this.length ? e = this[0] : (e = s(), this.forEach(function (t) {
                        u(e, t)
                    })), a(t).insertBefore(e, t), this) : this
        }, l.insertAfter = function (t) {
            var e;
            return this.length ? (1 == this.length ? e = this[0] : (e = s(), this.forEach(function (t) {
                        u(e, t)
                    })), a(t).insertBefore(e, t.nextSibling), this) : this
        }, l.get = function (t) {
            return this[t]
        }, l.append = function (t) {
            return this.length && u(this[0], t), this
        }, l.appendTo = function (t) {
            if (1 == this.length) u(t, this[0]); else if (this.length > 1) {
                var e = s();
                this.forEach(function (t) {
                    u(e, t)
                }), u(t, e)
            }
        }, l.replace = function (t) {
            var e = this[0];
            return a(e).replaceChild(t, e), this
        }, t.exports = r
    }, function (t, e, n) {
        "use strict";
        function r(t, e) {
            return t && t.hasOwnProperty(e)
        }

        function i(t) {
            var e = [];
            for (var n in t)r(t, n) && e.push(n);
            return e
        }

        function o(t) {
            var e = c[t];
            if (e)return e;
            u.innerHTML = t;
            var n = u.childNodes;
            return e = n && n.length ? n[0].nodeValue : t, c[t] = e, e
        }

        var a = n(3), s = {
            "&": "&amp;",
            "<": "&lt;",
            ">": "&gt;",
            '"': "&quot;",
            "'": "&#x27;",
            "/": "&#x2F;"
        }, u = document.createElement("div"), c = {}, h = void 0, l = new RegExp(i(s).join("|"), "g"), f = 5, p = {
            type: function (t) {
                if (null === t)return "null";
                if (t === h)return "undefined";
                var e = /\[object (\w+)\]/.exec(Object.prototype.toString.call(t));
                return e ? e[1].toLowerCase() : ""
            }, keys: function (t) {
                var e = [];
                return t ? Object.keys ? Object.keys(t) : (this.objEach(t, function (t) {
                            e.push(t)
                        }), e) : e
            }, bind: function (t, e) {
                return t.bind ? t.bind(e) : function () {
                        return t.apply(e, arguments)
                    }
            }, extend: function (t) {
                if ("object" != this.type(t))return t;
                for (var e, n, r = 1, i = arguments.length; r < i; r++) {
                    e = arguments[r];
                    for (n in e)t[n] = e[n]
                }
                return t
            }, trim: function (t) {
                return t.trim ? t.trim() : t.replace(/^\s+|\s+$/gm, "")
            }, indexOf: function (t, e) {
                if (t.indexOf)return t.indexOf(e);
                var n = -1;
                return p.some(t, function (t, r) {
                    if (t === e)return n = r, !0
                }), n
            }, forEach: function (t, e) {
                if (t.forEach)return t.forEach(e);
                for (var n = t.length, r = 0; r < n; r++)e(t[r], r);
                return t
            }, some: function (t, e) {
                if (t.some)return t.some(e);
                for (var n = t.length, r = !1, i = 0; i < n; i++)if (e(t[i], i)) {
                    r = !0;
                    break
                }
                return r
            }, map: function (t, e) {
                if (t.map)return t.map(e);
                for (var n = t.length, r = [], i = 0; i < n; i++)r.push(e(t[i], i));
                return r
            }, objEach: function (t, e) {
                if (t)for (var n in t)if (r(t, n) && e(n, t[n]) === !1)break
            }, domRange: function (t, e, n) {
                for (var r = [], i = t.childNodes, o = !1, a = 0; a < i.length; a++) {
                    var s = i[a];
                    if (s === n)break;
                    o ? r.push(s) : s == e && (o = !0)
                }
                return r
            }, immutable: function (t) {
                var e, n = this, r = this.type(t);
                return "array" == r ? e = p.map(t, function (t) {
                        return n.immutable(t)
                    }) : "object" == r ? (e = {}, this.objEach(t, function (t, r) {
                            e[t] = n.immutable(r)
                        })) : e = t, e
            }, diff: function (t, e, n) {
                var r = this;
                if (n = void 0 === n ? f : n, n <= 0)return t !== e;
                if ("array" == this.type(t) && "array" == this.type(e))return t.length !== e.length || p.some(t, function (t, i) {
                        return r.diff(t, e[i], n - 1)
                    });
                if ("object" == this.type(t) && "object" == this.type(e)) {
                    var i = p.keys(t), o = p.keys(e);
                    if (i.length != o.length)return !0;
                    var r = this;
                    return p.some(i, function (i) {
                        return !~p.indexOf(o, i) || r.diff(t[i], e[i], n - 1)
                    })
                }
                return t !== e
            }, slice: function (t) {
                if (!t || !t.length)return [];
                if (t.slice)return t.slice(0);
                for (var e = t.length, n = [], r = 0; r < e; r++)n.push(t[r]);
                return n
            }, walk: function (t, e) {
                var n = e(t) !== !1, r = this;
                if (n) {
                    var i = p.slice(t.childNodes);
                    p.forEach(i, function (t) {
                        r.walk(t, e)
                    })
                }
            }, isUndef: function (t) {
                return void 0 === t
            }, escape: function (t) {
                return "string" !== this.type(t) ? t : t.replace(l, function (t) {
                        return s[t]
                    })
            }, hasOwn: r, hasAttribute: function (t, e) {
                return t.hasAttribute ? t.hasAttribute(e) : !!t.getAttribute && null !== t.getAttribute(e)
            }, getAttribute: function (t, e) {
                return t && t.getAttribute(e)
            }, split: function (t, e) {
                if (a.ie && a.ie <= 8) {
                    var n = "[￳|￴]";
                    return t = t.replace(e, function () {
                        return n
                    }), t.split(n)
                }
                return t.split(e)
            }, inherit: function (t, e) {
                function n() {
                }

                return n.prototype = e.prototype, t.prototype = new n, t
            }, entity: function (t) {
                return t && t.replace ? t.replace(/(&[#a-zA-Z0-9]+;)/g, function (t, e) {
                        return o(e)
                    }) : t
            }
        };
        t.exports = p
    }, function (t, e) {
        "use strict";
        function n() {
            for (var t, e = 3, n = document.createElement("div"), r = n.getElementsByTagName("i"); n.innerHTML = "<!--[if gt IE " + ++e + "]><i></i><![endif]-->", r[0];);
            return e > 4 ? e : t
        }

        var r = n(), i = document.createElement("input");
        t.exports = {
            ie: r,
            supportQuerySelector: document.querySelector && document.querySelectorAll,
            supportChangeEvent: "onchange" in i,
            supportKeyupEvent: "onkeyup" in i
        }
    }, function (t, e) {
        "use strict";
        t.exports = {
            Element: function (t) {
                return t && (1 == t.nodeType || 11 == t.nodeType)
            }, Fragment: function (t) {
                return t && 11 == t.nodeType
            }, DOM: function (t) {
                return t && (this.Element(t) || 8 == t.nodeType)
            }
        }
    }, function (t, e) {
        var n = {
            namespace: "r-",
            directiveSep: ";",
            directiveSep_regexp: /;/g,
            mutable_dirtives: ["html", "text"],
            "catch": !1
        };
        t.exports = n
    }, function (t, e, n) {
        "use strict";
        var r = n(2), i = n(4), o = n(3).supportQuerySelector;
        t.exports = function (t, e, n) {
            if (!o) {
                var a = {};
                r.walk(t, function (t) {
                    if (!i.Element(t))return !1;
                    r.forEach(n, function (e) {
                        r.hasAttribute(t, e) && (a[e] || (a[e] = []), a[e].push(t))
                    });
                    var o;
                    return r.forEach(e, function (e) {
                        r.hasAttribute(t, e) && (o = !0, a[e] || (a[e] = []), a[e].push(t))
                    }), !o
                })
            }
            return function (e) {
                if (o)return t.querySelectorAll(e.join(","));
                var n = [], i = {};
                return r.forEach(e, function (t) {
                    var e = t.match(/^\[(.+?)\]$/)[1];
                    if (!i[e]) {
                        i[e] = !0;
                        var o = a[e] || [];
                        n.length ? r.forEach(o, function (t) {
                                ~r.indexOf(n, t) || n.push(t)
                            }) : n = n.concat(o)
                    }
                }), n
            }
        }
    }, function (t, e) {
        "use strict";
        function n(t, e) {
            if (r) {
                var n = r[t];
                if (n && "function" == typeof n.apply) n.apply(r, e); else {
                    var i = [];
                    i.push("[" + t.toUpperCase() + "]");
                    for (var o = 0; o < e.length; o++)i.push(e[o]);
                    r.log(i.join(" "))
                }
            }
        }

        var r = window.console, i = r && r.log && r.error && r.warn && r.info, o = i ? r : {
                log: function () {
                    n("log", arguments)
                }, error: function () {
                    n("error", arguments)
                }, warn: function () {
                    n("warn", arguments)
                }, info: function () {
                    n("info", arguments)
                }
            };
        o.errorTrace = function (t) {
            if (r)if (r.groupCollapsed && r.groupEnd)if (t.stack) {
                r.groupCollapsed("%c" + t.message, "color: white;background:red");
                var e = t.stack.split("\n");
                e.shift();
                for (var n = 0; n < e.length; n++)r.log(e[n]);
                r.groupEnd()
            } else o.error(t.message || t); else o.log(t)
        }, t.exports = o
    }, function (t, e, n) {
        "use strict";
        function r(t) {
            return String(t).replace(/\[([^\[\]]+)\]/g, function (t, e) {
                return "." + e.replace(/^["']|["']$/g, "")
            })
        }

        function i(t) {
            return s.isUndef(t) || null === t
        }

        function o(t, e, n) {
            var i, o, a = r(e).split("."), u = a.pop(), c = t;
            if (s.some(a, function (t) {
                    var e = s.type(c);
                    return "object" != e && "array" != e ? (i = !0, o = [t, c], !0) : void(c = c[t])
                }), !i) {
                if ("object" == s.type(c) || "array" == s.type(c))return c[u] = n, t;
                i = !0, o = [u, c]
            }
            throw new Error("Can' not access \"" + o[0] + '" of "' + o[1] + '" when set value of "' + e + '"')
        }

        function a(t, e) {
            var n = r(e).split("."), o = t;
            return s.some(n, function (t) {
                return i(o) ? (o = void 0, !0) : void(o = o[t])
            }), o
        }

        var s = n(2);
        t.exports = {normalize: r, set: o, get: a}
    }, function (t, e, n) {
        "use strict";
        function r() {
        }

        function i() {
            return u.some(this._expressions, u.bind(function (t, e) {
                var n = this._caches[e], r = this.$exec(t);
                if (!r[0])return !!this.$diff(n, r[1])
            }, this))
        }

        function o(t) {
            t = t || this, t.preventDefault ? t.preventDefault() : t.returnValue = !1
        }

        var a = n(1), s = n(5), u = n(2), c = n(7), h = n(3), l = n(10), f = n(8);
        t.exports = {
            attr: {
                multi: !0, bind: function (t) {
                    this.attname = t, this._$el = a(this.$el)
                }, update: function (t) {
                    u.isUndef(t) ? this._$el.removeAttr(this.attname) : this._$el.attr(this.attname, t)
                }, unbind: function () {
                    this._$el = null
                }
            }, "class": {
                multi: !0, bind: function (t) {
                    this.className = t, this._$el = a(this.$el)
                }, update: function (t) {
                    t ? this._$el.addClass(this.className) : this._$el.removeClass(this.className)
                }, unbind: function () {
                    this._$el = null
                }
            }, html: {
                constant: !0, bind: function (t) {
                    function e() {
                        u.forEach(f, function (t, e) {
                            var n = g.$exec(t);
                            n[0] || (d[e] = n[1])
                        });
                        var t = [];
                        return u.forEach(p, function (e, n) {
                            t.push(e), n < f.length && t.push(d[n])
                        }), l.unveil(t.join(""))
                    }

                    var n = l.exprRegexp, r = "replace" == t || "inner" != t, i = "replace" != t && "inner" != t && !!t, o = this.$el.innerHTML, a = i ? t : o;
                    a || (a = "", c.warn('Content template should not empty of "' + s.namespace + 'html".', this.$el));
                    var h = l.veil(a), f = this._expressions = u.map(h.match(n) || [], function (t) {
                            return l.angleBrackets(l.strip(t))
                        }) || [a], p = u.split(h, n), d = this._caches = new Array(f.length), g = this;
                    if (r) {
                        var v = this.$el.parentNode, m = document.createElement("div"), y = document.createDocumentFragment(), b = document.createComment("<" + s.namespace + "html>" + a), w = document.createComment("</" + s.namespace + "html>");
                        y.appendChild(b), y.appendChild(w), v.replaceChild(y, this.$el), this._render = function () {
                            v = b.parentNode;
                            var t = e(), n = u.domRange(v, b, w);
                            m.innerHTML = t, u.forEach(u.slice(m.childNodes), function (t) {
                                y.appendChild(t)
                            }), u.forEach(n, function (t) {
                                v.removeChild(t)
                            }), v.insertBefore(y, w)
                        }
                    } else this._render = function () {
                        this.$el.innerHTML = e()
                    }
                }, shouldUpdate: function () {
                    return i.apply(this, arguments)
                }, update: function () {
                    this._render()
                }, unbind: function () {
                    this._render = r, this._expressions = this._caches = null
                }
            }, show: {
                update: function (t) {
                    this.$el.style.display = t ? "" : "none"
                }
            }, style: {
                multi: !0, bind: function (t) {
                    this.sheet = t
                }, update: function (t) {
                    this.$el.style && (this.$el.style[this.sheet] = t)
                }
            }, text: {
                constant: !0, bind: function (t) {
                    var e, n = "replace" == t || "inner" != t, r = "replace" != t && "inner" != t && !!t, i = l.exprRegexp, o = this.expr = r ? t : this.$el.innerHTML, a = l.veil(o), h = this._expressions = u.map(a.match(i) || [], function (t) {
                            return l.angleBrackets(l.strip(t))
                        }) || [a], f = u.split(a, i), p = this._caches = new Array(h.length), d = this, g = this.$el;
                    if (this.render = function () {
                            u.forEach(h, function (t, e) {
                                var n = d.$exec(t);
                                n[0] || (p[e] = n[1])
                            });
                            var t = [];
                            u.forEach(f, function (e, n) {
                                t.push(e), n < h.length && t.push(p[n])
                            });
                            var r = l.unveil(t.join(""));
                            n ? e.nodeValue = u.entity(r) : this.$el["innerText" in g ? "innerText" : "textContent"] = u.entity(r)
                        }, n) {
                        e = this.textNode = document.createTextNode("");
                        var v = this.$el.parentNode;
                        if (!v)return c.error('"' + s.namespace + "text\" 's parentNode is not found. {" + this.$expr + "}");
                        v.replaceChild(e, this.$el)
                    }
                    this.render()
                }, shouldUpdate: i, update: function () {
                    this.render()
                }, unbind: function () {
                    this.render = r, this._expressions = this._caches = this.textNode = null
                }
            }, model: {
                bind: function (t) {
                    var e = this.$el.tagName, n = e.toLowerCase(), r = this._$el = a(this.$el);
                    switch (n = "input" == n ? r.attr("type") || "text" : n) {
                        case"tel":
                        case"url":
                        case"text":
                        case"search":
                        case"password":
                        case"textarea":
                            h.supportChangeEvent ? this.evtType = "change,input" : h.supportKeyupEvent ? this.evtType = "keyup,input" : this.evtType = "input";
                            break;
                        case"date":
                        case"week":
                        case"time":
                        case"month":
                        case"datetime":
                        case"datetime-local":
                        case"color":
                        case"range":
                        case"number":
                        case"select":
                        case"checkbox":
                            this.evtType = "change";
                            break;
                        default:
                            return void c.warn('"' + s.namespace + 'model" only support input,textarea,select')
                    }
                    var i = this, o = this.$vm, l = this.vType = "checkbox" == n ? "checked" : "value";
                    this._prop = t, this._requestChange = function () {
                        if (i._prop) {
                            var t = i.$el[l], e = o.$data[i._prop];
                            u.diff(t, e) && o.$set(i._prop, t)
                        }
                    }, this._update = function () {
                        if (i._prop) {
                            var t = i.$el[l], e = f.get(o.$data, i._prop);
                            t !== e && (i.$el[l] = e)
                        }
                    }, u.forEach(this.evtType.split(","), function (t) {
                        r.on(t, i._requestChange)
                    })
                }, update: function (t) {
                    t ? this._prop = t : c.error('Invalid property key "' + t + '"')
                }, afterUpdate: function () {
                    this._update()
                }, unbind: function () {
                    var t = this, e = a(this.$el);
                    u.forEach(this.evtType.split(","), function (n) {
                        e.off(n, t._requestChange)
                    }), this._requestChange = this._update = r
                }
            }, on: {
                multi: !0, bind: function (t, e, n) {
                    this._expr = n;
                    var r = this.$el.tagName;
                    "vchange" == t && (t = "INPUT" != r && "TEXTAREA" != r || "onchange" in this.$el ? "change" : "onkeyup" in this.$el ? "keyup" : "input"), this.type = t
                }, update: function (t) {
                    this.unbind();
                    var e = t;
                    if ("function" !== u.type(e))return c.warn('"' + s.namespace + 'on" only accept function. {' + this._expr + "}");
                    var n = this;
                    this.fn = function (t) {
                        t.$currentTarget = n.$el, t.$preventDefault = o, e.call(n.$vm, t)
                    }, a(this.$el).on(this.type, this.fn, !1)
                }, unbind: function () {
                    this.fn && (a(this.$el).off(this.type, this.fn), this.fn = null)
                }
            }
        }
    }, function (t, e, n) {
        "use strict";
        function r(t) {
            return !!t && !!o.trim(t).match(/^\{[\s\S]*?\}$/m)
        }

        function i(t) {
            return o.trim(t).match(/^\{([\s\S]*)\}$/m)[1].replace(/^- /, "")
        }

        var o = n(2);
        t.exports = {
            isExpr: r, strip: i, wrapExpr: function (t) {
                return "{" + t + "}"
            }, exprRegexp: /\{[\s\S]*?\}/g, veil: function (t) {
                return t.replace(/\\{/g, "￰").replace(/\\}/g, "￱")
            }, unveil: function (t) {
                return t.replace(/\uFFF0/g, "\\{").replace(/\uFFF1/g, "\\}")
            }, angleBrackets: function (t) {
                return t.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&")
            }
        }
    }, function (t, e) {
        "use strict";
        function n() {
        }

        t.exports = {
            "if": {
                bind: function () {
                    var t = this.$el, e = t.parentNode, n = !0;
                    this._mount = function () {
                        n || (n = !0, e.appendChild(t))
                    }, this._unmount = function () {
                        n && (n = !1, e.removeChild(t))
                    }
                }, unbind: function () {
                    this._mount = this._unmount = n
                }, update: function (t) {
                    return t ? this._compiled ? this._mount() : (this._compiled = !0, this.$vm.$compile(this.$el), this._mount(), void 0) : this._unmount()
                }
            }
        }
    }, function (t, e, n) {
        "use strict";
        function r() {
        }

        function i(t, e, n, r, i, a) {
            function c() {
                if (d.$destroyed)return s.warn('Directive "' + r + '" already destroyed.');
                var t = !1;
                if (!v || $) x && x.call(d) && _ && _.call(d); else {
                    var e = d.$exec(i), n = e[1];
                    if (!e[0] && u.diff(n, w) && (t = !0, !x || x.call(d, n, w))) {
                        var o = w;
                        w = n, _ && _.call(d, n, o)
                    }
                }
                T && T.call(d, t)
            }

            var d = this, g = [], v = !!h(i), m = i;
            if (v && (i = l(i)), n.multi) {
                var y, b = /^[^:]+:/;
                if (!b.test(i))return s.error('Invalid expression of "{' + i + '}", it should be in this format: ' + r + '="{ key: expression }".');
                i = i.replace(b, function (t) {
                    return y = u.trim(t.replace(/:$/, "")), ""
                }), i = u.trim(i), g.push(y)
            }
            d.$el = e, d.$vm = t, d.$id = f++, d.$expr = i, d.$rawExpr = m, d.$name = r, d.$destroyed = !1, d.$scoped = !!n.scoped, d.$scope = a, d.$updateId = u.getAttribute(e, o.namespace + "updateid") || "", this._$unbind = n.unbind;
            var w, E = n.bind, _ = n.update, x = n.shouldUpdate, T = n.afterUpdate, $ = n.constant;
            u.objEach(n, function (t, e) {
                d[t] = e
            }), this.$diff = p;
            var D;
            v && !$ ? (w = d.$exec(i), D = w[0], w = w[1]) : w = m, g.push(w), g.push(i), d.$update = c, E && E.apply(d, g), !D && _ && _.call(d, w)
        }

        var o = n(5), a = n(10), s = n(7), u = n(2), c = n(13), h = a.isExpr, l = a.strip, f = 0, p = function () {
            return u.diff.apply(u, arguments)
        };
        i.prototype.$exec = function (t) {
            return c(this.$vm, t, this.$name)
        }, i.prototype.$destroy = function () {
            this.$destroyed || (this._$unbind && this._$unbind.call(this), this.$update = this.$destroy = this.$exec = r, this.$el = null, this.$destroyed = !0)
        }, t.exports = i
    }, function (t, e, n) {
        function r(t) {
            var e = i.slice(arguments), r = e[1], s = a[r];
            try {
                return s || (s = a[r] = o(r)), [null, i.immutable(s(i.extend({}, t.$methods, t.$data)))]
            } catch (u) {
                e[1] = ". " + e[2] + "=" + (/^\{/.test(e[1]) ? e[1] : "{" + e[1] + "}");
                var c = n(7);
                switch (u.name) {
                    case"ReferenceError":
                        c.warn(u.message + e[1], "@VM: ", t);
                        break;
                    default:
                        c.error(e[2] ? "'" + e[2] + "': " : "", u.message + e[1], e[3] || "", "@VM: ", t)
                }
                return [u]
            }
        }

        var i = n(2), o = n(14), a = {};
        t.exports = r
    }, function (t, e) {
        t.exports = function (t) {
            return /^[_$][\w$]*$/.test(t) ? function (e) {
                    return e[t]
                } : new Function("$scope", "with($scope){return (" + t + ")}")
        }
    }])
}), window.txv = window.txv || {}, txv.share = {
    config: {
        pic: "",
        mod_elm: document.getElementById("mod_share_list"),
        shareButtonSelector: "",
        getShareTargetByEl: function () {
        },
        getLink: function () {
        },
        getTitle: function () {
        },
        getPic: function () {
        },
        getSummary: function () {
        },
        getDesc: function () {
        },
        onShare: function () {
        },
        platform: 1,
        ver: "1",
        targetName: ""
    }, init: function (t) {
        function e(t, e) {
            var n = [], r = txv.share.config.platform;
            r += "tencentweibo" == t ? "weibo" : "sinaweibo" == t ? "sina" : t;
            for (var i in e)e[i] && n.push(i + "=" + encodeURIComponent(e[i]));
            return a[t] + n.join("&")
        }

        function n(t) {
            return txv.share.config.getTitle(t) || document.title
        }

        function r(t) {
            var e = txv.share.config.getLink(t) || window.location.href, n = "__t=" + txv.share.config.ver, r = txv.share.config.platform + ".", i = t.id || t.getAttribute("tid");
            return "function" == typeof txv.share.config.getShareTargetByEl && (i = txv.share.config.getShareTargetByEl(t) || t.id || t.getAttribute("tid")), r += "tencentweibo" == i ? "weibo" : "sinaweibo" == i ? "sina" : i, e.indexOf("ptag") == -1 && (n += "&ptag=" + encodeURIComponent(r)), e = e + (e.indexOf("?") == -1 ? "?" : "&") + n
        }

        function i(t) {
            return "function" == typeof txv.share.config.getPic ? txv.share.config.getPic(t) || txv.share.config.pic : txv.share.config.pic
        }

        function o(t, e, n, r) {
            t = t || "", e = e || "", n = n || "", r = r || 99;
            var i = 0, o = 9, a = "其他", u = "其他", c = "http://rcgi.video.qq.com/web_report?cmd=2554", h = c, l = new Date;
            "function" == typeof txv.login.getUin && (i = txv.login.getUin()), "v.qq.com" == window.location.host && (o = 1, a = "腾讯视频"), "film.qq.com" == window.location.host && (o = 2, a = "VIP影院"), "undefined" != typeof s[r] && (u = s[r]);
            var f = {
                uin: i,
                vid: e,
                ver: n,
                idx: 1,
                val: o,
                val2: r,
                itype: 1,
                ctype: 3,
                host: window.location.host,
                url: t,
                str1: a,
                str2: u,
                t: l.valueOf()
            };
            for (prop in f)h += ["&", prop, "=", encodeURIComponent(f[prop])].join("");
            "undefined" == typeof window.g_imgShareReport && (window.g_imgShareReport = new Image), window.g_imgShareReport.src = h
        }

        $.extend(txv.share.config, t), txv.ua.isiPad && (txv.share.config.platform = 0);
        var a = {
            sinaweibo: "http://service.weibo.com/share/share.php?appkey=3362463736&",
            douban: "http://shuo.douban.com/!service/share?",
            qzone: "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?",
            tencentweibo: "http://share.v.t.qq.com/index.php?c=share&a=index&",
            qq: "http://connect.qq.com/widget/shareqq/index.html?",
            wechat: "http://v.qq.com/share/weixin.html?"
        }, s = {101: "QQ空间", 102: "腾讯微博", 1: "新浪微博", 4: "豆瓣", 9: "QQ", 10: "微信"}, u = {
            sinaweibo: function (t) {
                var a = {url: r(t), title: n(t), pic: i(t), content: "utf-8"};
                a.url += a.url.indexOf("?") == -1 ? "?_out=1" : "&_out=1";
                var s = e("sinaweibo", a);
                o(a.url, "", a.title, 1), txv.share.config.targetName ? window.open(s, txv.share.config.targetName, "height=650,width=608,top=100,left=200,toolbar=no,menubar=no,resizable=yes,location=yes,status=no") : window.open(s, "_blank")
            }, tencentweibo: function (t) {
                var a = {
                    site: "http://" + document.location.host,
                    url: r(t),
                    title: n(t),
                    pic: i(t),
                    appkey: encodeURI("13301e141c1842958e441f59af5798ee")
                };
                a.url += a.url.indexOf("?") == -1 ? "?_out=102" : "&_out=102";
                var s = e("tencentweibo", a);
                o(a.url, "", a.title, 102), txv.share.config.targetName ? window.open(s, txv.share.config.targetName, "height=650,width=608,top=100,left=200,toolbar=no,menubar=no,resizable=yes,location=yes,status=no") : window.open(s, "_blank")
            }, qzone: function (t) {
                var a = {site: "腾讯视频", url: r(t), title: n(t), desc: txv.share.config.getDesc(t), pics: i(t)};
                a.url += a.url.indexOf("?") == -1 ? "?_out=101" : "&_out=101";
                var s = e("qzone", a);
                o(a.url, "", a.title, 101), txv.share.config.targetName ? window.open(s, txv.share.config.targetName, "height=650,width=608,top=100,left=200,toolbar=no,menubar=no,resizable=yes,location=yes,status=no") : window.open(s, "_blank")
            }, douban: function (t) {
                var a = {href: r(t), name: n(t), image: i(t)};
                a.href += a.href.indexOf("?") == -1 ? "?_out=4" : "&_out=4";
                var s = e("douban", a);
                o(a.href, "", a.name, 4), txv.share.config.targetName ? window.open(s, txv.share.config.targetName, "height=400,width=608,top=100,left=200,toolbar=no,menubar=no,resizable=yes,location=yes,status=no") : window.open(s, "_blank")
            }, qq: function (t) {
                var a = n(t), s = {
                    url: r(t),
                    desc: txv.share.config.getDesc(t) || a,
                    title: a,
                    summary: txv.share.config.getSummary(t) || a,
                    pics: i(t),
                    site: "腾讯视频",
                    style: "203",
                    width: 16,
                    height: 16
                };
                s.url += s.url.indexOf("?") == -1 ? "?_out=9" : "&_out=9";
                var u = e("qq", s);
                o(s.url, "", s.title, 9), txv.share.config.targetName ? window.open(u, txv.share.config.targetName, "height=650,width=745,top=100,left=200,toolbar=no,menubar=no,resizable=yes,location=yes,status=no") : window.open(u, "_blank")
            }, wechat: function (t) {
                var i = {url: r(t), title: n(t)};
                i.url += i.url.indexOf("?") == -1 ? "?_out=10" : "&_out=10";
                var a = e("wechat", i);
                o(i.url, "", i.title, 10), window.open(a, "_blank")
            }
        }, c = txv.share.config.shareButtonSelector || "a";
        $(txv.share.config.mod_elm).off("click", c).on("click", c, function (t) {
            var e = $(this).get(0), n = e.id || e.getAttribute("tid");
            "function" == typeof txv.share.config.getShareTargetByEl && (n = txv.share.config.getShareTargetByEl(e) || e.id || e.getAttribute("tid")), "undefined" != typeof u[n] && (u[n](e), txv.share.config.onShare(e.id || e.getAttribute("tid")))
        })
    }
};